Totales acumulados en SQL
Una ventana ordenada convierte una columna de montos en una curva acumulada.
SELECT
day,
amount,
SUM(amount) OVER (
ORDER BY day
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS running_total,
AVG(amount) OVER (
ORDER BY day
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) AS rolling_week
FROM daily_revenue;
Cómo funciona
- La cláusula de frame declara qué filas alimentan cada resultado.
UNBOUNDED PRECEDINGhastaCURRENT ROWda una suma acumulada.- La misma ventana puede alimentar varias expresiones.
Palabras clave y builtins usados aquí
ANDASAVGBETWEENBYCURRENTFROMORDERROWROWSSELECTSUMday
El intento, en números
- Líneas
- 12
- Caracteres a escribir
- 231
- Tokens
- 47
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 30 segundos.
Paso 3 de 9 en Funciones de ventana; paso 9 de 24 en Analítica y reportes.