Frames de ventana en SQL
El frame decide qué filas puede ver la función de ventana desde donde está parada.
SELECT
day,
amount,
SUM(amount) OVER (
ORDER BY day
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
) AS three_row_sum,
SUM(amount) OVER (
ORDER BY day
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS to_date,
SUM(amount) OVER (
ORDER BY day
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
) AS centered
FROM daily_revenue;
Cómo funciona
ROWScuenta filas;RANGEcuenta valores de la clave de orden.- Con empates,
RANGEincluye cada fila empatada —ROWSno. - El frame por defecto es toda la partición hasta los empates de la fila actual.
Palabras clave y builtins usados aquí
ANDASBETWEENBYCURRENTFROMORDERROWROWSSELECTSUMday
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 315
- Tokens
- 67
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 42 segundos.
Paso 5 de 9 en Funciones de ventana; paso 11 de 24 en Analítica y reportes.