15. februar 2010 - 10:25Der er
12 kommentarer og 1 løsning
Brug af having og group by
Hej,
Jeg har en tabel kaldet "k". I tabellen har jeg en kolonne kaldet medlemnnr og en kaldet klubnr.
En medlemsnr kan stå flere gange med samme klubnr. Jeg vil gerne vide det samlede antal af medlemmer der står mere end 1 gang med samme klubnr grupperet i klubnr orden.
Dvs. hvis nedenstående er min tabel: Klubnr medlemsnr 120 12012 121 89439 120 12012
Det returner kun antal over 1. jeg vil gerne se hvor mange dubletter hvert klub har. Hvis klub 120 har 200 medlemer der opstår 2 gange, så skal det stå sådan:
heller ikke :).. det har jeg forsøgt med. Sådan returner den bare det hele ud fra de enkelte klubber, da den her bare siger returner alle de klubber der har mere end 1 medlem.
Nope..:) Den skal ikke returner antal medlemmer i de enkelte klubber, men antal af dubletter(samme medlemsnr optræder flere end 1 gang ud for det samme klubnr) i de enkelte klubber.
Hmm, mon ikke man har brug for en subquery, hvor inderste query foretager en optælling som showsource foreslår, og hvor den yderste grupperer og optæller på klubnr?
Som:
select klubnr, count(*) as DubAntal from ( select klubnr as klubnr from k group by klubnr, medlemsnr having count(*) > 1 ) sub group by klubnr having count(*) > 1 order by klubnr
Den query var jeg aldrig nogensinde kommet på ! Og som altid, er det sgu rart at lære noget nyt !!!
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.