我的表格格式如下:
Id Code
1 A
1 B
2 A
3 A
3 C
4 A
4 B
我正在尝试获取如下代码组合的数量:
Code Count
A,B 2 -- Row 1,2 and Row 6,7
A 1 -- Row 3
A,C 1 -- Row 4
我无法获得组合结果。我所能做的只是分组,但我没有获得组合ID的数量。
答案 0 :(得分:0)
您需要以某种方式汇总行,然后执行两次。代码看起来像这样:
select codes, count(*) as num_ids
from (select id, group_concat(code order by code) as codes
from t
group by id
) id
group by code;
group_concat()
的拼写可能是listagg()
或string_agg()
,具体取决于数据库。
在SQL Server中,使用string_agg()
:
select codes, count(*) as num_ids
from (select id, string_agg(code, ',') within group (order by code) as codes
from t
group by id
) id
group by code;