row_number()将select查询到的数据进行排序,给每一条数据加一个序号,从1开始
栗子1
row_number() over(order by xlh desc)表示是先把xlh列降序,再为降序以后的每条xlh记录返回一个序号,row_number() 再对返回的序号进行排序
xlh row_number
1700 1
1500 2
1085 3
710 4
row_number() over(partition by col 1 order by col2)
表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
empid deptid salary
1 10 5500
2 10 4500
3 20 1900
4 20 4800
5 40 6500
6 40 14500
7 40 44500
8 50 6500
9 50 7500
需求:根据部门分组,显示每个部门的工资等级
预期结果
empid deptid salary
1 10 5500
2 10 4500
4 20 4800
3 20 1900
7 40 44500
6 40 14500
5 40 6500
9 50 7500
8 50 6500
SQL脚本:
select * , row_number() over (partition by deptid order by salary desc) rank from employee