SQL查询结果集分组、排序(Row_Number()),取排序后的第n条

时间:2022-09-16 12:08:32

需求:先按员工编号分组排序,然后给每个分组从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 表示组内的排序序号。

        查询结果如下:

        SQL查询结果集分组、排序(Row_Number()),取排序后的第n条


补充:如果需要取第n条,直接使用where rank = n,  需要和其他表做链接,使用left on等