大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说SQL 语句-partition by「建议收藏」,希望您对编程的造诣更进一步.
empid deptid salary
----------- ----------- ---------------------------------------
1 10 5500.00
2 10 4500.00
3 20 1900.00
4 20 4800.00
5 40 6500.00
6 40 14500.00
7 40 44500.00
8 50 6500.00
9 50 7500.00
代码100分
需求:根据部门分组,显示每个部门的工资等级。
SQL脚本:
代码100分SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank
FROM employee
empid deptid salary rank
----------- ----------- --------------------------------------- --------------------
1 10 5500.00 1
2 10 4500.00 2
4 20 4800.00 1
3 20 1900.00 2
7 40 44500.00 1
6 40 14500.00 2
5 40 6500.00 3
9 50 7500.00 1
8 50 6500.00 2
SQL脚本:
代码100分SELECT *
FROM
(SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) R
FROM employee) B
WHERE B.R =1
#只显示部门工资最高的
/****** ******/
select *
from (
select name,学科,成绩,ROW_NUMBER() over (PARTITION by 学科 order by 成绩 desc) as num
from [XSBOOK].[dbo].[XKCJ]) T
where T.num <= 3 order by T.学科
name 学科 成绩 num
---------- ---------- ----------- --------------------
李四 数学 98 1
李四 数学 95 2
张三 数学 93 3
张三 英语 92 1
张三 英语 92 2
李四 英语 90 3
李四 语文 85 1
李四 语文 81 2
张三 语文 80 3
语法形式:ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2)
解释:根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10121.html