Content
SQL Window Functions: Funciones de Ventana Explicadas
SQL Window Functions: Funciones de Ventana Explicadas
¿Qué son las Window Functions?
Las funciones de ventana (window functions) realizan cálculos sobre un conjunto de filas relacionadas con la fila actual, sin agrupar los resultados en una sola fila como hace GROUP BY.
Diferencia con GROUP BY
Con GROUP BY
Con Window Function
---
Sintaxis Básica
---
Funciones de Ranking
ROW_NUMBER()
Asigna un número único secuencial:
| nombre | departamento | salario | ranking |
|--------|--------------|---------|---------|
| Ana | Ventas | 80000 | 1 |
| Carlos | IT | 75000 | 2 |
| María | Ventas | 75000 | 3 |
RANK()
Igual ranking para valores iguales, salta números:
| nombre | salario | ranking |
|--------|---------|---------|
| Ana | 80000 | 1 |
| Carlos | 75000 | 2 |
| María | 75000 | 2 |
| Pedro | 60000 | 4 |
DENSE_RANK()
Como RANK pero sin saltar números:
| nombre | salario | ranking |
|--------|---------|---------|
| Ana | 80000 | 1 |
| Carlos | 75000 | 2 |
| María | 75000 | 2 |
| Pedro | 60000 | 3 |
NTILE(n)
Divide en n grupos iguales:
---
PARTITION BY
Divide los datos en grupos independientes:
| nombre | departamento | salario | ranking_depto |
|--------|--------------|---------|---------------|
| Ana | Ventas | 80000 | 1 |
| María | Ventas | 75000 | 2 |
| Carlos | IT | 75000 | 1 |
| Pedro | IT | 60000 | 2 |
---
Funciones de Agregación como Window
---
LAG y LEAD
LAG - Valor de Fila Anterior
| fecha | ventas | ventas_ayer | diferencia |
|-------|--------|-------------|------------|
| 2024-01-01 | 100 | NULL | NULL |
| 2024-01-02 | 150 | 100 | 50 |
| 2024-01-03 | 120 | 150 | -30 |
LEAD - Valor de Fila Siguiente
---
FIRST_VALUE y LAST_VALUE
---
Frame Specification (ROWS/RANGE)
Define qué filas incluir en el cálculo:
ROWS BETWEEN
Opciones de Frame
| Especificación | Significado |
|----------------|-------------|
| UNBOUNDED PRECEDING | Desde el inicio |
| n PRECEDING | n filas antes |
| CURRENT ROW | Fila actual |
| n FOLLOWING | n filas después |
| UNBOUNDED FOLLOWING | Hasta el final |
---
Casos de Uso Prácticos
1. Top N por Categoría
2. Porcentaje del Total
3. Crecimiento Mes a Mes
4. Running Total (Acumulado)
5. Encontrar Gaps en Secuencias
---
Window Functions vs Subconsultas
Con Subconsulta (menos eficiente)
Con Window Function (más eficiente)
---
Múltiples Windows
Puedes definir múltiples ventanas con nombres:
---
Errores Comunes
1. ORDER BY Faltante en Ranking
2. Confundir ROWS con RANGE
ROWS cuenta filas físicas, RANGE agrupa valores iguales.
3. LAST_VALUE sin Frame
---
Conclusión
Las window functions son una herramienta poderosa que simplifica análisis complejos. Dominarlas te permite crear reportes avanzados con código más limpio y eficiente.
---
Tip: Usa AI2sql para generar consultas con window functions automáticamente. La IA puede ayudarte a crear análisis complejos en segundos.
Share this
More Articles

TOOLS
How to Build Your Own AI Agent Team with OpenClaw in 15 Minutes
Feb 5, 2026

TOOLS
OpenClaw AI Assistant: Local 24/7 Automation Guide 2026
Feb 4, 2026
TOOLS
SQL WITH Clause (CTE): Complete Guide with Examples
Jan 14, 2026
TOOLS
MySQL to PostgreSQL Migration: Complete 2026 Guide with Syntax Conversion
Jan 14, 2026
TOOLS
SQL vs Excel: When Should You Make the Switch? [2026]
Jan 14, 2026