Windows nommées
Afin d’éviter d’avoir à écrire des expressions complexes à chaque fois que l’on définit une Window, le nom de la Window peut être spécifié dans la clause WINDOW
. Le nom de la Window peut être utilisé dans la clause OVER
pour faire référence à la définition de la Window, et peut également être utilisé comme Window de base pour une autre Window nommée ou intégrée (dans la clause OVER
). Les Windows encadrées (avec les clauses RANGE
et ROWS
) ne peuvent pas être utilisées comme Window de base, mais peuvent être utilisées dans la clause OVER window_name
. Une Window qui utilise une référence à une Window de base ne peut pas avoir de clause PARTITION BY
et ne peut pas remplacer le tri par une clause ORDER BY
.
SELECT
id,
department,
salary,
count(*) OVER w1,
first_value(salary) OVER w2,
last_value(salary) OVER w2,
sum(salary) over (w2 ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) AS s
FROM employee
WINDOW w1 AS (PARTITION BY department),
w2 AS (w1 ORDER BY salary)
ORDER BY department, salary;