如果您需要选择所有二等工资员工,则使用 dense_rank() over(partition by department order by salary desc) = 2 过滤器。它将以第二工资返还所有员工。 当部门中只有1条记录(不存在第二个薪资,部门中有一个员工)时,它将被排名为1,并且您将不会得到该部门的任何记录(按密集的\u rank=2筛选)。 如果您只需要选择一个记录(不是所有员工)和第二个工资,那么 row_number() over(partition by department order by salary desc) = 2 会起作用,但如果有多个员工拿第二份薪水,它会随机挑选一个拿第二份薪水的员工。只有一条记录将被标记为行号=2。
1条答案
按热度按时间djmepvbi1#
如果您需要选择所有二等工资员工,则使用
dense_rank() over(partition by department order by salary desc) = 2
过滤器。它将以第二工资返还所有员工。当部门中只有1条记录(不存在第二个薪资,部门中有一个员工)时,它将被排名为1,并且您将不会得到该部门的任何记录(按密集的\u rank=2筛选)。
如果您只需要选择一个记录(不是所有员工)和第二个工资,那么
row_number() over(partition by department order by salary desc) = 2
会起作用,但如果有多个员工拿第二份薪水,它会随机挑选一个拿第二份薪水的员工。只有一条记录将被标记为行号=2。