我有一个表格,如下所示:
create table test
(
cola varchar(10)
)
插入一些数据:
insert into test values('a');
insert into test values('a');
insert into test values('a');
insert into test values('b');
insert into test values('b');
insert into test values('c');
insert into test values('d');
insert into test values('d');
我想显示cola
列中有多少个组
预期结果:
TotalGroups a b c d
--------------------------------
4 3 2 1 2
最佳答案
试试这个,删除 [ 和 ] 以避免 SQL 注入(inject):
DECLARE @sql varchar(max) =
'SELECT (select count(distinct cola) from test) TotalGroups'
SELECT @sql += ',' +cast(count(*) as varchar(10)) +
'['+ replace(replace(cola, ']', ''), '[', '') + ']'
FROM TEST
GROUP BY cola
ORDER BY cola
EXEC(@sql)
结果:
Total_Groups a b c d
4 3 2 1 2
关于sql - 使用 SQL Server 2008 计算列中存在的组数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25766700/