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
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.