Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Aggregatie en Groepering in SQL | Werken met Gegevens
Databricks Fundamentals: Een Beginnersgids

Aggregatie en Groepering in SQL

Veeg om het menu te tonen

Note
Definitie

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
question mark

Welke SQL-clausule is vereist om samenvattingsrijen te maken bij het gebruik van aggregatiefuncties zoals SUM() of AVG()?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 7

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 4. Hoofdstuk 7
some-alt