sql查询增加自动递增的序号列
可以用row_number函数实现
SELECT *,row_number() OVER(ORDER BY score(列名) DESC) AS rank FROM score
语法:
ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。
row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
举例:根据部门分组,显示每个部门的工资等级
预期结果:
empid | deptid | salary | rank |
1 | 10 | 5500 | 1 |
2 | 10 | 4500 | 2 |
4 | 20 | 4800 | 1 |
3 | 20 | 1900 | 2 |
7 | 40 | 44500 | 1 |
6 | 40 | 14500 | 2 |
5 | 40 | 6500 | 3 |
9 | 50 | 7500 | 1 |
8 | 50 | 6500 | 2 |
SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee
THE END
0
二维码
打赏
海报


sql查询增加自动递增的序号列
可以用row_number函数实现
SELECT *,row_number() OVER(ORDER BY score(列名) DESC) AS rank FROM score
语法:
ROW_NUMBER() OVER(PARTITI……
