我不能雄辩地解释我的最终问题,如果你能更好地描述SQL解决方案,请随意编辑这个标题和这个问题的内容。
我在包含“Item”,“Category”列的表中有数据,并且我有以下查询计算每个项目中不同类别的数量。
SELECT
[ItemID], COUNT(DISTINCT [CategoryText] ) AS 'number of categories'
FROM [SampleTable]
GROUP BY
ItemID
这给了我输出
`ItemID', 'number of categories'
100 1
101 3
102 1
我现在想要做的是按项目数量分组项目数量,目的是确定“大多数项目只有一个类别吗?”
对于上面的例子,我希望结果是
'Number of categories', 'Number of items'
1, 2
3, 1
我确信有一个简单的查询可以解决这个问题,但我会绕圈而不取得进展。
答案 0 :(得分:3)
按类别数量汇总结果。
select [number of categories], count(*) [number of items]
from (SELECT [ItemID], COUNT(DISTINCT [CategoryText]) AS 'number of categories'
FROM [SampleTable]
GROUP BY ItemID) t
group by [number of categories]