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'
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: