FIRST_VALUE y LAST_VALUE en SQL
Alcanzar los bordes de una partición sin una segunda consulta.
SELECT
country,
name,
score,
FIRST_VALUE(name) OVER whole_country AS best_in_country,
LAST_VALUE(name) OVER whole_country AS worst_in_country,
NTH_VALUE(name, 2) OVER whole_country AS runner_up
FROM players
WINDOW whole_country AS (
PARTITION BY country
ORDER BY score DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
);
Cómo funciona
FIRST_VALUElee la primera fila del frame, no de la partición.LAST_VALUEnecesita un frame explícito o solo devuelve la fila actual.NTH_VALUEtoma cualquier posición hasta la que puedas contar.
Palabras clave y builtins usados aquí
ANDASBETWEENBYDESCFROMORDERROWSSELECT
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 333
- Tokens
- 57
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 36 segundos.
Paso 7 de 9 en Funciones de ventana; paso 13 de 24 en Analítica y reportes.