Cursussen › Datagedreven Beslissingen: Van Vraag naar Antwoord

Groeperen tot een Grafiekklare Tabel

Les 6 van 8 · 13 min

Eén rij per balk

Een grafiek is een vermomde tabel. Een staafdiagram van omzet per bron heeft precies één rij per bron nodig en één kolom per waarde. Van duizenden bestelrijen naar een handvol samenvattende rijen gaan, is het werk van GROUP BY.

SQL
SELECT source,
       COUNT(*) AS orders,
       ROUND(SUM(net_amount), 2) AS revenue
FROM orders
WHERE status = 'delivered'
  AND order_date >= '2026-01-01'
  AND order_date < '2026-04-01'
GROUP BY source
ORDER BY revenue DESC;

GROUP BY source voegt alle rijen met dezelfde bron samen tot één rij, en aggregaties zoals COUNT en SUM werken vervolgens binnen elke groep. Elke kolom in SELECT moet ofwel in GROUP BY voorkomen, ofwel binnen een aggregatie zitten. Anders kan SQL niet weten welke van de vele waarden in een groep het moet tonen.

Voor het eerste kwartaal van 2026 zet het resultaat direct op de eerste plaats met CHF 14'711.70, dan betaald zoeken met CHF 5'798.60 en organisch met CHF 5'716.96. Social staat als laatste met CHF 2'662.37. Lees het aandachtig: source is de bron van het bezoek dat tot de bestelling leidde. Van de 273 bestellingen die dat kwartaal via directe bezoeken werden geplaatst, waren er slechts 22 een eerste bestelling. Deze tabel laat zien waar bestellingen terechtkomen, niet welk kanaal de klant heeft gewonnen.

Groeperen op een berekende waarde

Om per maand te groeperen, bereken je de maand uit de datum. strftime(order_date, '%Y-%m') formatteert een datum als tekst, zoals 2025-07. Omdat de tekst met het jaar begint, sorteert het sorteren ervan ook de maanden op chronologische volgorde.

  • Geef de berekende kolom een naam met AS, bijvoorbeeld AS month. In DuckDB kun je dan GROUP BY month schrijven; in sommige andere databases herhaal je de berekening.
  • Filter voordat je groepeert. WHERE verwijdert rijen voordat ze worden gegroepeerd, zodat geannuleerde bestellingen nooit bij de sommen terechtkomen.
  • Sorteer de rijen zoals de grafiek gelezen wordt: maanden op tijd, categorieën op grootte.
  • Houd het aantal rijen klein genoeg om te lezen. Acht regio's of twaalf maanden leveren een goede grafiek op; 96 producten hebben meestal een top 10 nodig en één rij voor de rest.

Hoe het jaar eruitziet

Gegroepeerd per maand loopt de geleverde omzet in 2025 van CHF 7'963.79 in juli tot CHF 18'373.89 in december. December had niet het grootste aantal bestellingen; dat was november, met 273. De mandjes in december waren het grootst, met gemiddeld CHF 70.67. Het tweede kwartaal van 2025 bracht CHF 37'265.67 op.

Bestellingen en omzet rangschikken groepen niet altijd op dezelfde manier. In 2025 had Genève 272 geleverde bestellingen en Basel 264, maar Basel bracht meer omzet op, CHF 16'079.85 tegenover CHF 15'744.15, omdat de bestellingen daar gemiddeld groter waren. Wanneer twee waarden verschillende verhalen kunnen vertellen, horen beide kolommen in de tabel thuis.

Deze vorm is voor Lena op twee manieren belangrijk. Het tweede kwartaal is geen piekseizoen, dus een vlakke omzet van april tot juni zou niet bewijzen dat een nieuw budget mislukt is. En kanaalresultaten uit december mogen niet vergeleken worden met resultaten uit juli zonder dat in het memo te vermelden.

💡 Een grafiekklare tabel heeft geen lege cellen, één duidelijke eenheid per kolom, zoals bestellingen of CHF, en precies de rijen die de grafiek zal tonen. Moet je rijen verwijderen in een spreadsheet voordat je de grafiek maakt, pas dan liever de query aan.
Kennistoets
Welke query geeft een correcte, grafiekklare tabel van bestellingen per regio terug?

Log in om antwoord te geven en je voortgang bij te houden.

Inloggen
</>
Babala Software Netzwerk — Apps, Websites & KI-Lösungen aus Füllinsdorf BL
© 2026 Babala Özdemir · UID CHE-322.105.560 babala.ch info@babala.ch 076 792 63 50 Facebook Instagram