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: