Avatar billede koborg Nybegynder
14. februar 2005 - 14:54 Der er 5 kommentarer

Hvordan "counter" man en distinct count?

Jeg har et spørgsmål som jeg håber nogle kan hjælpe mig med.

Jeg har en tabel der indeholder forskellige antal linier pr. kunde. Jeg vil gerne have et udtræk, hvor jeg kan se hvor mange kunder der har x antal liner, ala

antal linier  antal kunder
1              10
2              5
3              7
osv osv

antal linier får jeg fat i ved hjælp af en distinct count(kundenr), group by kundenr. Men hvordan tæller jeg hvor mange kunder der har det eksakte antal linier?
Avatar billede lorentsnv Nybegynder
14. februar 2005 - 14:59 #1
Det lyder som du skal bruge 'Having' i din group by, i stedet for distinct count.

Noget i retnign af
Select kundenr, count(kundenr)
from kundetabel
group by kundenr
having count(kunder) = 5
Avatar billede kjulius Novice
14. februar 2005 - 21:42 #2
For mig lyder det nærmere som om du skulle have noget lignende dette:

SELECT Linier, COUNT(DISTINCT kundenr) AS Kunder
FROM (kundenr, COUNT(*) AS Linier FROM din_tabel GROUP BY kundenr) AS tmp
GROUP BY Linier

Det virker i hvert fald på DB2...
Avatar billede kjulius Novice
15. februar 2005 - 18:14 #3
Hov, hvad er der sket her. Der er vist faldet en SELECT ud. Det skal naturligvis være:

SELECT Linier, COUNT(DISTINCT kundenr) AS Kunder
FROM (SELECT kundenr, COUNT(*) AS Linier FROM din_tabel GROUP BY kundenr) AS tmp
GROUP BY Linier
Avatar billede kjulius Novice
22. februar 2005 - 18:05 #4
Undskyld min utålmodighed, men virker min SQL hos dig?
Avatar billede kjulius Novice
10. marts 2005 - 17:29 #5
Knock, knock, anyone home?
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
Computerworld tilbyder specialiserede kurser i database-management

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