-- rank()排名是不連續(xù)的,出現(xiàn)同名的排序序號(hào)會(huì)相同(比較常規(guī)的排序),且序號(hào)會(huì)斷開(kāi)
select
employee_id
,last_name
,department_id
,salary
,rank() over(partition by department_id order by salary desc)
from employees
-- row_number()排名是連續(xù)的,出現(xiàn)同名的序號(hào)仍然會(huì)連續(xù)(用來(lái)記錄次數(shù)比較實(shí)用),且不會(huì)跳躍
select
employee_id
,last_name
,department_id
,salary
,row_number() over(partition by department_id order by salary desc)
from employees
-- dense_rank()排名是連續(xù)的,出現(xiàn)同名的序號(hào)會(huì)相同,且不會(huì)跳躍(用的比較少的,單純需要排名且存在并列也不跳躍)
select
employee_id
,last_name
,department_id
,salary
,dense_rank() over(partition by department_id order by salary desc)
from employees
-- ntile()根據(jù)排序指定數(shù)量進(jìn)行分區(qū)編號(hào)(分區(qū)編號(hào)排序)
select
employee_id
,last_name
,department_id
,salary
,ntile(3) over(partition by department_id order by salary desc)
from employees