Aggregatie en Groepering in SQL
Veeg om het menu te tonen
SQL-aggregatie maakt gebruik van de GROUP BY-clausule om ruwe gegevens te groeperen tot samenvattende rijen. Met functies zoals SUM(), AVG() en COUNT() kunnen miljoenen rijen worden omgezet in bruikbare zakelijke statistieken, direct binnen een SQL-cel.
Voor velen is SQL de meest logische taal voor het samenvatten van gegevens. De syntaxis is zeer leesbaar en volgt een logische opbouw: kies de categorieën, bepaal de berekening en definieer de groepen. In dit hoofdstuk wordt de eerder aangemaakte tijdelijke view gebruikt om dezelfde aggregaties uit te voeren als in Python, maar dan met de eenvoud van SQL.
De GROUP BY-clausule
In SQL moet elke kolom die niet "wiskundig wordt samengevat" worden opgenomen in de GROUP BY-instructie aan het einde van de query. Dit geeft de SQL-engine precies aan hoe de gegevens moeten worden opgedeeld.
SELECT cut, COUNT(*)
FROM diamond_view
GROUP BY cut
Gebruik van ingebouwde aggregatiefuncties
SQL biedt verschillende standaardfuncties om berekeningen uit te voeren op numerieke kolommen:
- SUM(): telt alle waarden in de kolom op;
- AVG(): berekent het gemiddelde;
- MIN() / MAX(): vindt de laagste of hoogste waarde;
- COUNT(): geeft het aantal rijen terug.
%sql
SELECT
cut,
SUM(x),
AVG(y)
FROM diamond_view
GROUP BY cut
Aliassen voor professionele rapporten
Standaard kan SQL je resultaatkolommen labelen als sum(Total_Profit). Om je output geschikt te maken voor een zakelijk dashboard, gebruik je het AS-trefwoord om deze kolommen een meer beschrijvende naam te geven.
%sql
SELECT
cut,
SUM(x) AS Total_Length,
MAX(y) AS Highest_Diamond_Value
FROM diamond_view
GROUP BY cut
Gefilterde geaggregeerde data: de HAVING-clausule
Een veelgemaakte fout is het proberen te filteren van een geaggregeerd resultaat met WHERE. In SQL filtert WHERE individuele rijen voordat ze worden gegroepeerd. Als je de resultaten wilt filteren nadat ze zijn opgeteld (bijvoorbeeld om alleen regio's met meer dan $1.000.000 winst te tonen), moet je de HAVING-clausule gebruiken.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
HAVING Total_Length > 4000
Samenvatting sorteren
Om inzichten te benadrukken, altijd ORDER BY gebruiken. Hiermee kunnen resultaten worden gerangschikt, bijvoorbeeld door de meest winstgevende regio's bovenaan de tabel te tonen.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
ORDER BY Total_Length DESC
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.