Vensterfuncties in SQL zijn krachtige tools die complexe data-analyse en berekeningen mogelijk maken over sets van tabelrijen. Ze stellen gebruikers in staat om operaties uit te voeren zoals draaiende totalen, rangschikkingen en bewegende gemiddelden zonder de noodzaak voor subqueries of tijdelijke tabellen.

Vensterfuncties begrijpen

Vensterfuncties werken over een gespecificeerd rijbereik, gedefinieerd door de Over() clausule. Dit maakt berekeningen mogelijk die meerdere rijen binnen een partitie van gegevens overwegen, waardoor analyse efficiënter en leesbaarder wordt.

Gemeenschappelijke soorten vensterfuncties

  • RANK() en DENSE RANK(): Geeft rangschikkingen toe aan rijen binnen een partitie.
  • ROW NUMBER(): Geeft een uniek volgnummer voor elke rij.
  • LEAD() en LAG(): Toegangsgegevens van latere of vorige rijen.
  • SUM(), AVG(), MIN(), MAX(): Geaggregeerde functies gebruikt als vensterfuncties voor het draaien van totalen en gemiddelden.

Praktische toepassingen

Window functies worden gebruikt in verschillende scenario's zoals het berekenen van lopende totalen, het creëren van ranglijsten, en het analyseren van trends in de tijd. Ze zijn vooral nuttig in financiële rapporten, verkoopanalyse, en prestaties meters.

Voorbeeld: Berekenen van het lopende totaal

De volgende SQL query toont hoe je een lopende totaal van de verkopen voor elk product te berekenen: