每人,每天,做好每件事
Everyone,Everyday,Everything

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排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

举例:根据部门分组,显示每个部门的工资等级

预期结果:

empiddeptidsalaryrank
11055001
21045002
42048001
32019002
740445001
640145002
54065003
95075001
85065002
SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee
赞(1) 打赏
未经允许不得转载:辣椒小鱼のBlog » sql查询增加自动递增的序号列
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

×
订阅图标按钮