Published on

2. 分组聚合函数:ROW_NUMBER() OVER (PARTITION BY Column ORDER BY COLUMN

Authors

分组聚合函数可以对数据分组并排序以按分组增加一个自动递增的列以得到理想的数据。

SQLServer版本至少2005版

语法:
ROW_NUMBER() OVER (PARTITION BY Column1 ORDER BY COLUMN2)
  • Column1: 分组列
  • Column2:排序列
演示:

1.创建如下表Table_1结构并插入数据:

idkysl1kysl2
2D0357A3-8CCF-442A-B0C1-35DFE2A881CBaa1
AB022164-0C61-4321-8E36-3A5A3E35EA4Ecc3
314C03C5-D79C-4EA0-82CD-25337935E0A0bb2
BD9C0338-8933-4423-81DB-A0AEE05D03F0aa2
40718F52-F815-4C61-968E-2BAEE248CA81cc4
16088343-FB69-4917-9677-DAEA3ABB8A09bb5
7EE903A5-2CF9-4BB5-8B66-33E6AEFEF3FDaa3
0AF9501D-C4A9-4CC0-B753-CABDDB90B783cc5
822DAA22-786C-4B67-827E-A5BB10B60845bb4

2.执行SQL:

select *,ROW_NUMBER() OVER (PARTITION BY kysl ORDER BY KYSL2 )ws from [Table_1] 

结果如下:

idkysl1kysl2n
2D0357A3-8CCF-442A-B0C1-35DFE2A881CBaa11
BD9C0338-8933-4423-81DB-A0AEE05D03F0aa22
7EE903A5-2CF9-4BB5-8B66-33E6AEFEF3FDaa33
314C03C5-D79C-4EA0-82CD-25337935E0A0bb21
822DAA22-786C-4B67-827E-A5BB10B60845bb42
16088343-FB69-4917-9677-DAEA3ABB8A09bb53
AB022164-0C61-4321-8E36-3A5A3E35EA4Ecc31
40718F52-F815-4C61-968E-2BAEE248CA81cc42
0AF9501D-C4A9-4CC0-B753-CABDDB90B783cc53