最近学会了ROW_NUMBER() OVER函数的用法,简单介绍一下:
其实ROW_NUMBER() OVER函数 就是为表里的某一列分组后按分组排序,其语法为
ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN),举个很简单的小例子:
序列 Y Z
1 10 5500.00
2 10 4500.00
3 20 1900.00
4 20 4800.00
5 40 6500.00
6 40 14500.00
7 40 44500.00
8 50 6500.00
9 50 7500.00
用脚本SELECT *, Row_Number() OVER (partition by Y ORDER by Z ) as rank FROM demo 执行后即为以下状态:
X Y rank
10 4500.00 1
10 5500.00 2
20 1900.00 1
20 4800.00 2
40 6500.00 1
40 14500.00 2
40 44500.00 3
50 6500.00 1
50 7500.00 2
由此可见,Y列中的金额按照X列分组后 得到rank列的排序, 如果不写partition by Y,则不按照X列的分组,直接对Y列的所有数值进行排序,from demo 后面依然可以跟order by DESC等字段进行升降序排列