row_number() OVER (PARTITION BY COL1 ORDER BY COL2)

PARTITION BY 应用场景

    表:employee     字段:deptid  部门     salary  工资

  • 现在要统计各部门工资高低名次,首先是根据部门分组,再就是以部门为单位排列名次。要达到效果如下:

若是没有排名我们用简单排序就可查询出。但要实现图中排名就要用到PARTITION BY

语法:SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee

  • 统计场景:要统计出当天公司考勤情况表,要求查出所有人员最早签到,最晚签退。需达到效果如图:

原理同上面语法一样。需要注意的是把查出的结果集当新结果集最外层用条序号小于2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值