[英]Nested groups and counts within SQL
我无法雄辩地解释我的最终问题,如果可以更好地描述SQL解决方案,请随时编辑此问题的标题和内容。
我在包含“项目”,“类别”列的表中有数据,并且我有以下查询来计算每个项目中不同类别的数量。
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
我敢肯定有一个简单的查询可以解决这个问题,但是却没有取得进展。
按类别数汇总结果。
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]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.