在sql中命名分组集
Naming grouped sets in tsql
是否可以将组名添加到 T-SQL
中的分组集中
Select Class, Category, Gender,Count(1) as Total, 'GroupNameHere' from PersonTable
Group By Class, Category, Gender
我希望每个分组集都被赋予一个新名称,如下所述
实际Table
Name | Class | Category | Gender | Address | ZipCode
----------------------------------------------------------------------------
ABC | 2 | Cat 1 | M | Some Add.. | 10125
XYZ | 2 | Cat 1 | M | Some Add.. | 20554
AFF | 3 | Cat 3 | M | Some Add.. | 24525
ASD | 7 | Cat 6 | F | Some Add.. | 18892
GDS | 7 | Cat 6 | F | Some Add.. | 17745
输出
Class | Category | Gender | Total | GroupName
----------------------------------------------------------------------------
2 | Cat 1 | M | 2 | Group 1
3 | Cat 3 | M | 1 | Group 2
7 | Cat 6 | F | 2 | Group 3
通过参考 this. I can use NewId()
生成基于 GUID
的行 ID 得到了解决方案。
Select Class, Category, Gender,Count(1) as Total,
'Group' + Convert(varchar(100),(ABS(CHECKSUM(NewId())))) as GroupName from PersonTable
Group By Class, Category, Gender
Select Class, Category, Gender,Count(1) as Total, 'Group ' +CAST (Row_Number() over ( order by Class, Category, Gender) as varchar(10) )as GroupName
from PersonTable
Group By Class, Category, Gender
是否可以将组名添加到 T-SQL
Select Class, Category, Gender,Count(1) as Total, 'GroupNameHere' from PersonTable
Group By Class, Category, Gender
我希望每个分组集都被赋予一个新名称,如下所述
实际Table
Name | Class | Category | Gender | Address | ZipCode
----------------------------------------------------------------------------
ABC | 2 | Cat 1 | M | Some Add.. | 10125
XYZ | 2 | Cat 1 | M | Some Add.. | 20554
AFF | 3 | Cat 3 | M | Some Add.. | 24525
ASD | 7 | Cat 6 | F | Some Add.. | 18892
GDS | 7 | Cat 6 | F | Some Add.. | 17745
输出
Class | Category | Gender | Total | GroupName
----------------------------------------------------------------------------
2 | Cat 1 | M | 2 | Group 1
3 | Cat 3 | M | 1 | Group 2
7 | Cat 6 | F | 2 | Group 3
通过参考 this. I can use NewId()
生成基于 GUID
的行 ID 得到了解决方案。
Select Class, Category, Gender,Count(1) as Total,
'Group' + Convert(varchar(100),(ABS(CHECKSUM(NewId())))) as GroupName from PersonTable
Group By Class, Category, Gender
Select Class, Category, Gender,Count(1) as Total, 'Group ' +CAST (Row_Number() over ( order by Class, Category, Gender) as varchar(10) )as GroupName
from PersonTable
Group By Class, Category, Gender