Ik heb een query, waarin ik GROUP BY gebruik. Is het ook mogelijk om het aantal dat niet in de groep valt te tellen met een variant op COUNT?
Ehh.. zodra je GROUP BY doet zit ALLES in een group.Op maandag 18 maart 2002 11:51 schreef Graveheart het volgende:
Ik heb een query, waarin ik GROUP BY gebruik. Is het ook mogelijk om het aantal dat niet in de groep valt te tellen met een variant op COUNT?
Als is het item het enige IN zijn eigen group maar zit nog steeds in een group.
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
Ik bedoel het aantal buiten de huidige groep.
Zeg maar eh: totaal_aantal_regels - regels_binnen_groep
Zeg maar eh: totaal_aantal_regels - regels_binnen_groep
ALs jij een count gebruikt icm een group by, dan zal de count de records tellen die binnen 1 groep vallen. Als je nu die hele kolom bij elkaar opteld heb je toch alle records??? Ik snap je probleem eigenlijk niet helemaal...
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Als je nu eerst de query zonder GROUP BY uitvoert, en hiervan het aantal resultaten aftrekt van de query met de GROUP BY is het gewenste resultaat bereikt lijkt me.Op maandag 18 maart 2002 11:51 schreef Graveheart het volgende:
Ik heb een query, waarin ik GROUP BY gebruik. Is het ook mogelijk om het aantal dat niet in de groep valt te tellen met een variant op COUNT?
There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -
Ja, dat klopt idd dat je het totaal hebt als je die kolom bij elkaar optelt, maar eh, hoe laat ik dat netjes door SQL doen?Op maandag 18 maart 2002 12:19 schreef Janoz het volgende:
ALs jij een count gebruikt icm een group by, dan zal de count de records tellen die binnen 1 groep vallen. Als je nu die hele kolom bij elkaar opteld heb je toch alle records??? Ik snap je probleem eigenlijk niet helemaal...
Ik wil zeg maar als output hebben:
1 5 17
2 3 17
3 6 17
4 2 17
5 1 17
waarin de eerste colom het id van de groep is, tweede het aantal regels binnen die groep en het laatste het totaal aantal regels.
Verwijderd
is na mijn weten niet mogelijk in mysql.
gebruik gewoon een aparte count query, dat is hoogst waarschijnlijk toch nog sneller dan een mogelijke work-around methode die dit zou moeten weergeven in mysql (zou alleen nie weten hoe, ben wel benieuwd of iemand het kan)
gebruik gewoon een aparte count query, dat is hoogst waarschijnlijk toch nog sneller dan een mogelijke work-around methode die dit zou moeten weergeven in mysql (zou alleen nie weten hoe, ben wel benieuwd of iemand het kan)
Okay thanx, het ging me ook allemaal om snelheid.Op maandag 18 maart 2002 12:40 schreef woeitje het volgende:
is na mijn weten niet mogelijk in mysql.
gebruik gewoon een aparte count query, dat is hoogst waarschijnlijk toch nog sneller dan een mogelijke work-around methode die dit zou moeten weergeven in mysql (zou alleen nie weten hoe, ben wel benieuwd of iemand het kan)
Het script dat ik gebuik is al een beetje ingewikkeld, en het wordt nog wat ingewikkelder als ik nog een apparte query moet maken.
Als iemand er toch nog achter komt hoe het moet: graag
De enige mogelijkheid die ik zie is alleen geldig voor een vast aantal groepen:
Misschien dat dit toch nog iets helpt.
code:
1
2
3
4
5
6
7
| select sum(iff(groep_id=&&par_groep1,1,0))
,sum(iff(groep_id=&&par_groep2,1,0))
,sum(iff(groep_id=&&par_groep3,1,0))
,sum(iff(groep_id=&&par_groep4,1,0))
,sum(iff(groep_id=&&par_groep5,1,0))
,count(*)
from tabel |
Misschien dat dit toch nog iets helpt.
Hmm, nee dat gaat niet lukken, maar thanx anyways.Op maandag 18 maart 2002 15:02 schreef Goodielover het volgende:
De enige mogelijkheid die ik zie is alleen geldig voor een vast aantal groepen:
code:
1 2 3 4 5 6 7select sum(iff(groep_id=&&par_groep1,1,0)) ,sum(iff(groep_id=&&par_groep2,1,0)) ,sum(iff(groep_id=&&par_groep3,1,0)) ,sum(iff(groep_id=&&par_groep4,1,0)) ,sum(iff(groep_id=&&par_groep5,1,0)) ,count(*) from tabel
Misschien dat dit toch nog iets helpt.
Daarvoor bestaat de functie 'having' in SQL.
In de docs van mysql staat ie niet. Dus het lijkt erop dat dit ook bij de groep functies hoort die mysql niet ondersteunt.
In de docs van mysql staat ie niet. Dus het lijkt erop dat dit ook bij de groep functies hoort die mysql niet ondersteunt.
De HAVING functie biedt hier helemaal geen soelaas.
Een HAVING gebruik je alleen om op de geaggregeerde resultaten nog een beperking/selectie uit te voeren.
Een HAVING gebruik je alleen om op de geaggregeerde resultaten nog een beperking/selectie uit te voeren.
Pagina: 1