SQL按照某个字段的内容进行分组,并在组内加序号

时间:2024-02-16 17:19:46

/*

测试环境

SQL Server Management Studio15.0.18098.0

Microsoft Analysis Services 客户端工具15.0.1300.89

Microsoft 数据访问组件 (MDAC)10.0.14393.0

Microsoft MSXML3.0 6.0 

Microsoft Internet Explorer9.11.14393.0

Microsoft .NET Framework4.0.30319.42000

操作系统6.3.14393

*/

 

例如:

种类 规格
A 100*100
A 100*50
B 50*50
B 100*200
B 100*100
C 100*100

 

 

 

 

 

 

 

 

 


加序号之后,变成

序号 种类 规格
1 A 100*100
2 A 100*50
1 B 50*50
2 B 100*200
3 B 100*100
1 C 100*100

 

 

 

 

 

 

 

 

 

SQL代码如下:

SELECT ROW_NUMBER() OVER (PARTITION BY TABLE.种类 ORDER BY TABLE.种类) ,种类,规格 FROM TABLE

 

其中PARTITION BY 是对数据进行分组,ORDER BY是对数据进行排序。