Fönsterfunktioner i SQL är kraftfulla verktyg som möjliggör komplex dataanalys och beräkningar över uppsättningar av tabellrader. De gör det möjligt för användare att utföra operationer som att köra totalt, ranking och rörliga medelvärden utan behov av underordnade eller tillfälliga tabeller.
Förstå fönsterfunktioner
Fönsterfunktioner fungerar över ett visst rader av rader relaterade till den aktuella raden, definierad av OVER() klausulen. Detta möjliggör beräkningar som anser flera rader inom en partition av data, vilket gör analysen mer effektiv och läsbar.
Vanliga typer av fönsterfunktioner
- RANK() och DENSE RANK(): Tilldelar rankningar till rader inom en partition.
- ROW NUMBER():] ger ett unikt nummer för varje rad.
- ]LEAD() och LAG():] Tillgångsdata från efterföljande eller tidigare rader.
- SUM(), AVG(), MIN(), MAX():] Aggregatfunktioner som används som fönsterfunktioner för löpande summor och medelvärden.
Praktiska tillämpningar
Fönsterfunktioner används i olika scenarier som att beräkna löpande totaler, skapa rankningar och analysera trender över tiden. De är särskilt användbara i finansiella rapporter, försäljningsanalys och prestandamätningar.
Exempel: Beräkning av löpande total
Följande SQL-fråga visar hur man beräknar en löpande total försäljning för varje produkt:
]