stiansa Skrevet 8. januar 2008 Skrevet 8. januar 2008 (endret) Heisan. Jeg lager et enkelt forum for hjemmesiden til klubben min. Alle meldinger ligger i en tabell kalt forumMessage, som ser slik ut: intMessageID (PK, identity) intParentMessageID (FK, not null) ...og så alle feltene for meldingstekst, osv - ikke relevant til mitt spørsmål her... Så skal jeg lage en statistikk som viser hvilken tråd som inneholder flest meldinger. Foreløpig har jeg prøvet og feilet meg fram til denne queryen: SELECT DISTINCT(intParentMessageID), COUNT(intMessageID) AS messagesInThread FROM forumMessage GROUP BY intParentMessageID Den gir meg et recordsett som består av en kolonne med parent-IDer og en kolonne som viser hvor mange meldinger som har samme parent-ID. Noe slikt: intParentMessageID | messagesInThread 1 | 4 5 | 3 12 | 10 ...osv Mitt spørsmål er hvordan jeg skal formatere queryen for å kun returnere parent-IDen til den tråden som inneholder flest meldinger. I eksempelet mitt skal altså queryen jeg er på jakt etter returnere tallet 12, for den tråden inneholder 10 meldinger. Update: Denne endringen: SELECT MAX(numOfMessagesInThread) FROM ( SELECT DISTINCT(intParentMessageID), COUNT(intMessageID) AS numOfMessagesInThread FROM forumMessage GROUP BY intParentMessageID ) gjør at jeg finner det største antall meldinger i en tråd, men da får jeg ikke parent-IDen... Stian Endret 8. januar 2008 av stiansa
j000rn Skrevet 8. januar 2008 Skrevet 8. januar 2008 (endret) SELECT TOP 1 ParentMessageID, COUNT(*) FROM Messages GROUP BY ParentMessageID ORDER BY 2 DESC Endret 8. januar 2008 av jorn79
stiansa Skrevet 8. januar 2008 Forfatter Skrevet 8. januar 2008 (endret) SELECT TOP 1 ParentMessageID, COUNT(*) FROM Messages GROUP BY ParentMessageID ORDER BY 2 DESC Tusen takk! Det funka, vøtt! Men nå oppdaget jeg at jeg må filtrere ut parentMessageID som er 0. Hvordan kan jeg gjøre dette i queryen? Altså at den skal finne den største gruppen av parentMessageID som ikke har ID 0 (Alle førstemeldinger i en tråd har jo parentID 0). Stian Endret 8. januar 2008 av stiansa
j000rn Skrevet 8. januar 2008 Skrevet 8. januar 2008 Jeg fant ut at jeg kan droppe ORDER BY, forresten. Jeg tror du i framtiden finner ut at det kan være lurt å ha den der.
stiansa Skrevet 8. januar 2008 Forfatter Skrevet 8. januar 2008 (endret) Jeg fant ut det med å filtrere bort parentID 0... Jeg trodde ikke det kunne være så enkelt som å legge til WHERE intParentMessageID > 0, men det var det altså! Hehe... -s Endret 8. januar 2008 av stiansa
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå