OnderwerpenSpiekbriefjeLessen
Lurndo › Onderwerpen › Lopende totalen en LAG

SQL leren: Lopende totalen en LAG

De tussenstand

Elke avond om zes uur wil de pers de tussenstand: wie leidt na deze rit, en hoeveel heeft hij opgeteld? "Niet alleen het eindklassement, maar het verloop", zegt Griet. Een totaal dat met elke rit meegroeit.

Een totaal dat meegroeit

Zet je een ORDER BY in de OVER van een SUM, dan groeit het venster mee: van de eerste rij tot en met de huidige. Zo krijg je een lopend totaal.

Hier de punten van Ruben de Graaf, rit na rit, met zijn tussenstand ernaast.

SELECT etappe_id, punten, SUM(punten) OVER (ORDER BY etappe_id) AS totaal FROM uitslagen WHERE renner_id = 11
Resultaat
etappe_idpuntentotaal
11212
2012
3416
41531
5031

Even terugkijken met LAG

LAG(kolom) haalt de waarde uit de vorige rij van het venster, LEAD(kolom) uit de volgende. De eerste rij heeft geen vorige, en krijgt NULL.

Hier het verschil in afstand met de rit ervoor.

SELECT id, aankomst, km, km - LAG(km) OVER (ORDER BY id) AS verschil FROM etappes
Resultaat
idaankomstkmverschil
1Lennik164NULL
2Lennik18-146
3Galmaarden178160
4Pepingen1857
5Halle156-29

Probeer het zelf

Toon per etappe de aankomst, de afstand en hoeveel kilometer de renners er na die rit in totaal op hebben zitten.

Klaar voor meer?

De volledige les heeft 6 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.

Begin aan de les
← VorigePer ploeg, per ritVolgende →Alles op één lijst
SQL-onderwerpenSpiekbriefjeExcelRanglijstAccountPrivacyEnglish