Als je in SQL een berekening wil uitvoeren over een resultaat, dan kun je hiervoor aggregatiefuncties gebruiken. Zo kun je bijvoorbeeld eenvoudig de totaalsom of het gemiddelde van een kolom opvragen.
Aggregatiefuncties spelen in SQL een essentiële rol en zijn eigenlijk onmisbaar. De functie laten toe om gegevens te groeperen en samen te vatten. Daarnaast kun je er over grote datasets statistische gegevens mee berekenen.
Deze blogpost is een diepgaande duik in de mogelijke aggregatiefuncties die je kunt toepassen in queries. Laten we eens ontdekken hoe je deze kunt toepassen voor geavanceerde analyses.
Wat zijn aggregatiefuncties in SQL?
Aggregatiefuncties in SQL voeren berekeningen uit op een reeks waarden en retourneren een enkel resultaat. Deze functies worden vaak gebruikt in combinatie met de GROUP BY
-clausule om samenvattingen te maken op basis van verschillende categorieën. Enkele veelvoorkomende aggregatiefuncties zijn:
- COUNT
- SUM
- AVG
- MIN
- MAX
advertentie
COUNT()
Met COUNT
tel je het aantal records voor de geselecteerde kolom in een dataset.
SELECT COUNT(*) FROM Orders
SUM()
Met SUM
tel je de totaal soms van de waarden in de opgegeven kolom.
SELECT SUM(orderbedrag) FROM Orders
AVG()
Met AVG
bereken je de gemiddelde waarde van een kolom.
SELECT AVG(orderbedrag) FROM Orders
MIN()
De MIN
functie geeft de laagste waarde (minimale) terug van de geselecteerde kolom.
SELECT MIN(orderbedrag) FROM Orders
MAX()
De MAX
functie geeft de hoogste waarde (maximale) terug van de geselecteerde kolom.
SELECT MAX(orderbedrag) FROM Orders
Aggregatiefuncties toepassen in SQL met GROUP BY
Een krachtige toepassing van aggregatiefuncties in een SQL-query is de combinatie met de GROUP BY
-clausule. Hiermee kun je resultaten groeperen op basis van één of meer kolommen, waarna aggregatiefuncties worden toegepast op elke groep. Een voorbeeld:
SELECT ordernummer, AVG(orderbedrag) as gemiddeld_orderbedrag
FROM Orders
GROUP BY klantId
Deze query geeft voor elke klant dat een bestelling heeft gedaan het gemiddelde orderbedrag terug.
HAVING-clausule voor verdere filtering
Na het gebruik van GROUP BY
wil je mogelijk de groepen nog verder filteren op basis van bepaalde voorwaarden. Dit kan je doen door gebruik van de HAVING
-clausule. Op deze manier kun je bijvoorbeeld alleen bestellingen opvragen waarvan de gemiddelde orderwaarde hoger is dan 50 euro.
SELECT ordernummer, AVG(orderbedrag) as gemiddeld_orderbedrag
FROM Orders
GROUP BY klantId
HAVING AVG(orderbedrag) > 50;
De combinatie van aggregatiefuncties in SQL
Je kunt ook meerdere aggregatiefuncties in één SQL-query combineren. Stel dat je het totale aantal bestellingen, de gemiddelde orderwaarde en het hoogste orderbedrag wilt weten. Dan kun je de volgende query uitvoeren.
SELECT
COUNT(*) as aantal_orders,
AVG(orderbedrag) as gemiddelde_orderbedrag,
MAX(orderbedrag) as hoogste_orderbedrag
FROM Orders;
Zoals je ziet kun je in SQL met aggregatiefuncties mooie berekeningen en analyses maken van gegevens. Functies zoals COUNT, SUM, AVG, MIN en MAX gecombineerd met de GROUP BY- en HAVING-clausules geven je diepgaande inzichten uit complexe datasets.