Table of Contents
Vindufunksjoner i SQL er kraftige verktøy som tillater kompleks dataanalyse og beregninger på tvers av sett med tabellrader. De gjør det mulig for brukerne å utføre operasjoner som kjører totaler, rangeringer og bevegelige gjennomsnitt uten behov for undergrupper eller midlertidige tabeller.
Forstå Vindufunksjoner
Vindufunksjoner opererer over et spesifisert rekkevidde relatert til den aktuelle raden, definert av Over () klausulen. Dette gjør det mulig å beregne flere rader i en partisjon av data, noe som gjør analysen mer effektiv og lesbar.
Vanlige typer vindufunksjoner
- RANK() og DENSE RANK(): tildeler rangeringer til rader i en partisjon.
- ROW NUMBER(): gir et unikt sekvensnummer for hver rad.
- ]LEAD() og LAG(): Adgangsdata fra påfølgende eller tidligere rader.
- SUM(), AVG(), MIN(), MAX(): Aggregate funksjoner som brukes som vindufunksjoner for å kjøre totaler og gjennomsnitt.
Praktiske applikasjoner
Vindufunksjoner brukes i ulike scenarier som å beregne løpende totaler, skape rangeringer og analysere trender over tid. De er spesielt nyttige i finansielle rapporter, salgsanalyse og ytelsesmetrikker.
Eksempel: Beregner løp totalt
Følgende SQL-spørsel viser hvordan du beregner en løpende total salg for hvert produkt: