MS Access统计不同列值对出现次数的问题求助
MS Access 统计列值对出现次数的正确SQL写法
你的问题出在子查询里用了DISTINCT——这会先把所有唯一的列对提取出来,每个组合只剩一条数据,外层分组后统计的结果自然都是1,没法反映原数据里的真实出现次数。
正确的SQL不需要额外子查询,直接对原表按列对分组统计即可:
SELECT Column1, Column2, COUNT(*) AS Number FROM Dataset GROUP BY Column1, Column2 ORDER BY Number DESC;
- 核心逻辑说明:
- 直接从
Dataset表读取数据,按Column1与Column2的组合进行分组 COUNT(*)统计每个分组内的行数,也就是对应列对在原数据中的出现次数ORDER BY Number DESC可让出现次数多的结果排在前面,若需要升序排序,把DESC去掉即可
- 直接从
内容的提问来源于stack exchange,提问作者sekutor
相关产品推荐
相关产品推荐

