Home » Aggregatiefuncties in SQL: Een diepgaande duik

Aggregatiefuncties in SQL: Een diepgaande duik

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()

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.