14. maj 2008 - 13:28Der er
5 kommentarer og 1 løsning
Dobbelt count på relationstabel
Hej,
Jeg har en tabel, der er en implementering af en n:m relation (kunde_interesser). Den har 2 fremmed nøgler: cpr_nr og interesse_id.
Med nedenstående SQL kan jeg tælle, hvor mange interesser hvert enkelt cpr_nr har registreret.
select cpr_nr, count(*) as antal from kunde_interesser group by cpr_nr
Fx. cpr_nr antal ------------------ 1234567890 12 2345678901 5 ...
Mit spørgsmål er nu: Hvordan kan jeg med SQL lave en liste, hvor jeg finder ud af, hvor mange cpr numre, der har registreret 1, 2, 3 osv. interesser, som fx:
Antal interesser Antal kunder -------------------------------- 1 805 2 22 3 75 4 1024
Uden at lige kunne gennemskue dit design 100% ... så kan jeg gøre sådan her på min 1 til mange relation, for at se hvor mange brugere der har sammen antal Maps.
SELECT COUNT(*) Antal, Maps FROM (SELECT U.UserID, COUNT(MapListID) AS Maps FROM Users U LEFT JOIN MapLists ML ON U.UserID = ML.UserID GROUP BY U.UserID) AS t1 GROUP BY Maps
20 sek virker som meget lang tid ... sikker på du har rigtige indexes på din table ?
// ouT
Synes godt om
Ny brugerNybegynder
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.