源表如下:
例如现在需要显示每个岗位中工资排名前10位的员工信息,并显示排名应该要怎么做呢?
Prompt: 有一个某公司职员表,表名为Bank_emp,empno为员工编号,ename为员工姓名,JOB为员工岗位,sal为工资,dept为部门,
请写出一个SQL语句来查询每个岗位下工资排名前10位的员工信息,显示员工编号,姓名,岗位,工资,部门,排名?
这个问题同样可以使用窗口函数ROW_NUMBER()
或RANK()
或DENSE_RANK()
来解决。以下是使用ROW_NUMBER()
的SQL语句:
sql复制代码
WITH ranked_employees AS ( SELECT empno, ename, JOB, sal, dept, ROW_NUMBER() OVER(PARTITION BY JOB ORDER BY sal DESC) as rank FROM Bank_emp ) SELECT empno, ename, JOB, sal, dept, rank FROM ra