如何使用SQL COUNT DISTINCT结合GROUP BY实现分组去重计数
可行SQL查询方案
以下是标准实现语句,请将语句中的你的表名替换为你实际使用的数据表名称:
SELECT COLOR, SHAPE, COUNT(DISTINCT ID1) AS Distinct_ID1, COUNT(DISTINCT ID2) AS Distinct_ID2 FROM 你的表名 GROUP BY COLOR, SHAPE;
如果执行上述语句结果不符合预期,可对照以下常见问题排查:
- NULL值统计问题:
COUNT(DISTINCT)默认会忽略字段的NULL值,若你需要将NULL作为一个独立的唯一值统计,可以使用COALESCE函数给NULL赋值专属占位符(注意占位符取值不能和ID1/ID2的正常业务取值重复),示例写法:COUNT(DISTINCT COALESCE(ID1, 'NULL_MARK')) AS Distinct_ID1 - 分组字段错误:确保
GROUP BY后仅跟COLOR和SHAPE两个字段,不要额外添加其他非聚合字段,也不要遗漏其中任意一个分组字段 - 过滤条件位置错误:如果需要先过滤原始数据再做分组统计,过滤条件要写在
WHERE子句中(放在FROM之后、GROUP BY之前),不要写在分组后的HAVING子句中
内容的提问来源于stack exchange,提问作者Inquisitive_Anaconda
相关产品推荐
相关产品推荐

