IntermediateWindow Functions
FIRST_VALUE / LAST_VALUE per group
The query
SQL
SELECT
dept_id,
first_name,
last_name,
salary,
FIRST_VALUE(first_name || ' ' || last_name) OVER (
PARTITION BY dept_id ORDER BY salary DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS highest_earner_in_dept,
LAST_VALUE(salary) OVER (
PARTITION BY dept_id ORDER BY salary DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS lowest_salary_in_dept
FROM employees
ORDER BY dept_id, salary DESC;Note
“LAST_VALUE requires ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING to see full window.