Funkcje okna wykonują obliczenia na zbiorze wierszy ("oknie") związanym z bieżącym wierszem, bez ich zwijania w jeden wiersz wynikowy (w przeciwieństwie do agregacji z GROUP BY). Umożliwiają zaawansowaną analitykę — sumy bieżące, rankingi, porównania z innymi wierszami — zachowując każdy wiersz w wyniku.
Kluczowa różnica od GROUP BY
GROUP BY → collapses groups into ONE row each (you lose individual rows)
Window function → computes across related rows but KEEPS every row
→ You get per-row detail AND aggregate/ranking info together.
