计算唯一组合

时间:2019-08-01 20:19:42

标签: sql ms-access

我有一个以下格式的表:

Input

我正在尝试找到一种方法来计算类别的不同组合。这是我正在寻找的输出:

Output

我尝试将“类别”字段分组,但无法找到创建唯一组合的方法。屏幕截图在excel中,仅用于说明目的。实际数据在ms-access中。

1 个答案:

答案 0 :(得分:2)

首先在子查询中获得唯一对,然后两次连接到表进行分组和计数:

select 
  t1.Category & '+' & t2.Category as Category, count(*) as Count
from (
  select t1.category as cat1, t2.category as cat2
  from tablename as t1, tablename as t2
  where not (t1.id = t2.id and t1.category = t2.category) and (t1.category < t2.category)
  group by t1.category, t2.category
) as t, tablename as t1, tablename as t2 
where t1.category = t.cat1 and t2.category =  t.cat2 and t1.id = t2.id
group by t1.Category & '+' & t2.Category