Оконные функции выполняют вычисления над набором строк ("окном") связанных с текущей строкой, без их объединения в одну выходную строку (в отличие от агрегатных функций с GROUP BY). Они позволяют выполнять мощные аналитические запросы — накопительные суммы, рейтинги, сравнения с другими строками — сохраняя при этом каждую строку в результате.
Ключевое отличие от 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.
