当前位置:神舟问>百科问答>sql中"row_number()over"是什么意思?

sql中"row_number()over"是什么意思?

2023-11-10 09:52:49 编辑:join 浏览量:570

sql中

语法:ROW_NUMBER()OVER(PARTITIONBYCOLUMNORDERBYCOLUMN)

简单的说row_number()从1开始,为每360问答一条分组记录返回一个数字,这里的ROW_NUMBER()OVER(ORDER组BYxlhDESC)是先把xlh列降序,再为降序以后的没条xlh记录返义留死回一个序号。

示例:

xlhrow_num

17001

15002

10853

7104

row_number()OVER(PARTITIONBYCOL掌朝克停其财终1ORDERBYCOL2)表示根据COL1分组,在分组内部根据C优款同投督设席太本OL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

实例:

初始化数据

createtableemployee(empidint,deptidint,salarydecimal(10,2))

insertintoe展阳福院石刻极团氧护mployeevalues(1,10,5500.00)

insert达纸二爱皇倍intoemployeevalues(2,10,4500.00)

insert广划intoemployeevalues(3,20,1900.00)

insert局训补当晶化除培育intoempl降压立就垂顾oyeevalues(4,20,4800.00)

insertintoemploy免挥eevalues(5,40,6500.00)

insertintoemp敌loyeevalues(6,40,14500.00)

insertintoemployeevalues(7,40,44500.00)

insertintoemployeevalues(8,50,6500.00)

insertintoemployeevalues(9,50,7500.00)

数据显示为

empiddeptidsalary

--------------------------------------------------沿镇里款者丰压银吃牛-----------

1105500.00

2104500.00

32019亲干营香随00.00

4204800.00

调席叫5406500.00

64014500.00

74044500.00

8506500.00

9507500.0土几执扩居都行慢房另营0

需求:根据部门分组,显示每个活半损谁界置校考船部门的工资等级

预期结果:

empiddeptidsalaryrank

---------------------均附氢调职------------------------------------------------------------

1105500.001

2104500.002

4204800.001

3201900.002

74044500.001

64014500.002

5406500.003

9507500.001

8506500.002

SQL脚本:

SELECT*,Row_Number()OVER(partitionbydeptidORDERBYsalarydesc)rankFROMemployee

标签:sql,row,number

版权声明:文章由 神舟问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.shenzhouwen.com/answer/209146.html
热门文章