Fonctions de classement
Les fonctions de classement calculent le numéro de classement dans une section de Window.
Ces fonctions peuvent être utilisées avec ou sans sectionnement et triage, mais leur utilisation sans triage n’a presque jamais de sens.
Les fonctions de classement peuvent être utilisées pour créer différents types de compteurs incrémentaux. Considérons SUM(1) OVER (ORDER BY SALARY)
comme un exemple de ce qu’elles peuvent faire, chacune d’une manière différente. Ci-dessous, une requête d’exemple pour comparer leur comportement par rapport à `SUM'.
SELECT
id,
salary,
DENSE_RANK() OVER (ORDER BY salary),
RANK() OVER (ORDER BY salary),
PERCENT_RANK() OVER(ORDER BY salary),
CUME_DIST() OVER(ORDER BY salary),
NTILE(3) OVER(ORDER BY salary),
ROW_NUMBER() OVER (ORDER BY salary),
SUM(1) OVER (ORDER BY salary)
FROM employee
ORDER BY salary;
id salary dense_rank rank percent_rank cume_dist ntile row_number sum -- ------ ---------- ---- ----------------- ----------------- ----- ---------- --- 3 8.00 1 1 0.000000000000000 0.200000000000000 1 1 1 4 9.00 2 2 0.250000000000000 0.400000000000000 1 2 2 1 10.00 3 3 0.500000000000000 0.800000000000000 2 3 4 5 10.00 3 3 0.500000000000000 0.800000000000000 2 4 4 2 12.00 4 5 1.000000000000000 1.000000000000000 3 5 5