Met aggregatiefuncties haal je informatie op over groepen rijen, in plaats van individuele rijen.
MIN(kolom) -- laagste waardeMAX(kolom) -- hoogste waardeAVG(kolom) -- gemiddeldeSUM(kolom) -- som van alle waardenCOUNT(*) -- aantal rijenSELECT MIN(age) FROM animals WHERE color = 'red'
Dit geeft de leeftijd van het jongste rode dier.
Hoe oud zijn de dieren op de boerderij gemiddeld? Tabel: animals, kolom: age.
De boer wil weten hoeveel dieren hij in totaal heeft. Tabel: animals.
Hoe oud is het oudste groene dier? Tabel: animals, kolommen: age, color.
Als je alle leeftijden van de kippen bij elkaar optelt, wat krijg je dan? Tabel: animals, kolommen: age, animaltype.
Met GROUP BY groepeer je de resultaten per unieke waarde in een kolom. Dit gebruik je samen met aggregatiefuncties om informatie per groep op te vragen.
SELECT color, AVG(age)
FROM animals
GROUP BY color
Dit geeft de gemiddelde leeftijd per kleur dier.
De boer wil weten hoeveel dieren hij per soort heeft. Toon het diersoort en het aantal. Tabel: animals, kolom: animaltype.
Wie van de eigenaren heeft gemiddeld de oudste dieren? Toon per eigenaar de gemiddelde leeftijd. Tabel: animals, kolommen: owner, age.
Wat is per kleur de leeftijd van het oudste dier? Toon de kleur en de maximale leeftijd. Tabel: animals.
Met HAVING filter je op het resultaat van een aggregatiefunctie. Het verschil met WHERE: WHERE filtert individuele rijen voor het groeperen, HAVING filtert groepen na het groeperen.
SELECT owner, COUNT(*) AS aantal
FROM animals
GROUP BY owner
HAVING COUNT(*) > 3
Dit toont alleen eigenaren die meer dan 3 dieren hebben.
Let op: In de HAVING-clause moet je de aggregatiefunctie herhalen (bijv. HAVING COUNT(*) > 3), niet de alias gebruiken.
Welke diersoorten komen meer dan 4 keer voor op de boerderij? Toon het type en het aantal. Tabel: animals.
Welke eigenaren hebben gemiddeld oude dieren (gemiddelde leeftijd hoger dan 6)? Toon de eigenaar en het gemiddelde. Tabel: animals.
Je wilt weten welke kleuren populair zijn bij de grotere dieren. Toon de kleuren die bij meer dan 2 dieren voorkomen, maar tel alleen dieren mee die niet 'small' zijn. Tabel: animals.