Inleiding

In het vorige onderdeel hebben we bekeken hoeveel rekeninghouders er niet in Rotterdam wonen. Daarna hebben we ook nog kunnen bekijken hoeveel rekeninghouders wel in Rotterdam wonen. Het wordt lastiger als we een overzicht van het aantal rekeninghouders per plaats willen opvragen. We zouden dan kunnen beginnen om eerst een lijst van woonplaatsen te maken:

SELECT DISTINCT plaats
FROM rekeninghouder


Om vervolgens per woonplaats het aantal rekeninghouders op te vragen:

Bijvoorbeeld:

SELECT COUNT(*) AS 'Maastricht'
FROM rekeninghouder
WHERE plaats = 'Maastricht'

 
Het nadeel van deze methode is dat je de 2de query maar liefst 22 keer moet herhalen om van alle plaatsen het aantal rekeninghouders te weten te komen!

 

 

De bovenstaande methode is erg omslachtig. Gelukkig kent SQL een statement om rijen te groeperen: GROUP BY.
In dit voorbeeld zou de tabel rekeninghouder gegroepeerd moeten worden op basis van woonplaats. Daarna kunnen we dan opvragen hoeveel rekeninghouders er in elke woonplaats wonen.

SELECT plaats, COUNT(*)
FROM rekeninghouder
GROUP BY plaats


Het resultaat van deze query is een lijst met woonplaatsen met daarachter het aantal rekeninghouders uit de desbetreffende woonplaatsen.

Het is ook mogelijk om te groeperen op twee kolommen. We willen bijvoorbeeld weten of er rekeningen bestaan die dezelfde status en hetzelfde saldo hebben. Daarvoor voeren we de onderstaande query uit:

SELECT saldo, status, COUNT(*)
FROM rekening
GROUP BY saldo, status


Hieronder zie je een stukje van het resultaat: