Las funciones de ventana realizan cálculos sobre un conjunto de filas (una "ventana") relacionadas con la fila actual, sin colapsar las filas en una única fila de salida (a diferencia de los agregados con GROUP BY). Permiten análisis poderosos — totales acumulados, rankings, comparaciones con otras filas — mientras se mantiene cada fila en el resultado.
La diferencia clave respecto a 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.
