row_number函数

row_number()将select查询到的数据进行排序,给每一条数据加一个序号,从1开始

栗子1

row_number() over(order by xlh desc)表示是先把xlh列降序,再为降序以后的每条xlh记录返回一个序号,row_number() 再对返回的序号进行排序

xlh             row_number

1700                  1

1500                  2

1085                  3

 710                   4

row_number()  over(partition by col 1 order by col2)

表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

empid         deptid              salary

    1                  10                5500

    2                  10                4500

    3                   20               1900

    4                   20               4800

    5                    40              6500

    6                    40              14500

    7                    40              44500

    8                     50              6500

    9                     50              7500

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

预期结果

empid            deptid               salary

   1                     10                  5500

   2                     10                  4500

   4                      20                 4800

   3                      20                 1900

   7                      40                 44500

   6                      40                 14500

   5                      40                  6500

   9                      50                  7500

   8                      50                   6500  

SQL脚本:

select * , row_number() over (partition by deptid order by salary desc) rank from employee

原文地址:https://www.cnblogs.com/simpledu/p/14314951.html