需求:先按员工编号分组排序,然后给每个分组从1,2...排序
分析:需要Row_Number() OVER 语法
解决:
SELECT emp_no,degree, Row_Number() OVER (partition by emp_no ORDER BY degree desc) rank FROM t_hrm_education
说明,先按emp_no分组,组内再按degree降序排列 , rank 表示组内的排序序号。
查询结果如下:
补充:如果需要取第n条,直接使用where rank = n, 需要和其他表做链接,使用left on等