Avatar billede ahjdp1 Nybegynder
24. august 2008 - 17:14 Der er 4 kommentarer og
1 løsning

Find 25 med flest medlemmer

Hej,

Jeg har en tabel "CollectionsUsers" hvor brugere ligger. Dernæst har jeg en tabel "Collections", hvor der er nogle grupper, som brugerne er medlem af.

Jeg vil gerne finde de 25 største grupper, men kan ikke rigtig greje hvordan jeg bygger det op med en SQL-sætning.
Avatar billede driis Nybegynder
24. august 2008 - 18:29 #1
Det er svært at sige uden flere oplysninger. men hvis der nu er et fælles ID der binder brugerne og collections sammen vil jeg tro at flg. kunne gøre det:

SELECT TOP 25 Collections.*, COUNT(SELECT * FROM CollectionUsers WHERE CollectionUsers.CollectionID = Collections.CollectionID) AS Cnt ORDER BY Cnt DESC
Avatar billede softspot Forsker
24. august 2008 - 23:33 #2
Jeg vil tro det kan gøre således i MS SQL Server (muligvis også i Access):

SELECT c.*, cuc.antal
FROM Colletions c
INNER JOIN (
  SELECT TOP 25 CollectionsID, COUNT(*) AS antal
  FROM CollectionsUsers
  GROUP BY CollectionsID
  ORDER BY COUNT(*) DESC
) cuc ON cuc.CollectionsID = c.id

forudsat at CollectionsID er fremmednøglen i CollectionsUsers, der, via ID i Collections, binder CollectionsUsers sammen med Collections.

Forklaring:
Den indre forspørgsel finder de 25 CollectionsID'er som har flest tilknyttede CollectionsUsers og den ydre forspørgsel finder de resterende oplysninger om de 25 Collections som bliver fundet i den indre forspørgsel (hvis jeg ellers har fået det rigtigt skruet sammne :-))...
Avatar billede ahjdp1 Nybegynder
25. august 2008 - 07:42 #3
Det ser ud til at virke som det skal. Smider du lige et svar.

Tak for hjælpen.
Avatar billede softspot Forsker
25. august 2008 - 08:41 #4
Velbekomme :)
Avatar billede softspot Forsker
25. august 2008 - 08:52 #5
Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester