Gå til innhold

Finne største gruppe av samme "ID"


Anbefalte innlegg

Skrevet (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 av stiansa
Videoannonse
Annonse
Skrevet (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 av stiansa
Skrevet (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 av stiansa

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...