FIRST_VALUE
Devuelve el valor de column de la primera fila del marco de la ventana.
MySQL 8.4
FIRST_VALUE(column)- column
- Columna o expresión cuyo valor se devuelve
Valor devuelto
Valor del tipo de column
Ejemplos
El miembro de mayor edad de cada estado
MySQL 8.4
SELECT member_name,
status,
birthday,
FIRST_VALUE(member_name) OVER (
PARTITION BY status
ORDER BY birthday
) AS oldest_in_status
FROM FamilyMembers;Diferencia con el salario más alto
MySQL 8.4
SELECT department_id,
name,
salary,
FIRST_VALUE(salary) OVER (
PARTITION BY department_id
ORDER BY salary DESC
) - salary AS gap_to_top
FROM employees;Detalles
El marco por defecto empieza en la primera fila de la partición, así que sin un marco propio la función devuelve el primer valor de la partición.
El marco define qué filas de la partición ve la función y se escribe después de ORDER BY: ROWS BETWEEN frame_start AND frame_end cuenta filas, mientras que RANGE BETWEEN frame_start AND frame_end usa los valores de ORDER BY.
Sin marco se aplica la regla por defecto. Si OVER tiene ORDER BY, el marco va desde el inicio de la partición hasta la fila actual, incluidas las filas con el mismo valor de ORDER BY. Sin ORDER BY, el marco es toda la partición.