typestar

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

  1. FIRST_VALUE lee la primera fila del frame, no de la partición.
  2. LAST_VALUE necesita un frame explícito o solo devuelve la fila actual.
  3. NTH_VALUE toma cualquier posición hasta la que puedas contar.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 7 de 9 en Funciones de ventana; paso 13 de 24 en Analítica y reportes.

← Anterior Siguiente →