You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL如何统计每个用户的不同选择项数量 实现分组去重计数查询

解决方案

你完全不需要用到INNER JOIN,直接搭配GROUP BY和去重计数函数就能实现需求,写法非常简洁:

SELECT 
  Name,
  COUNT(DISTINCT Choice) AS numberOfChoices
FROM 
  你的表名 -- 替换成你实际的表名即可
GROUP BY 
  Name;

逻辑说明

  • GROUP BY Name会将所有同名的记录聚合为同一组
  • COUNT(DISTINCT Choice)会统计每组内去重后的Choice值总数,刚好匹配你要的「不同Choice值的数量」的统计需求
  • 用AS给统计结果起别名numberOfChoices,最终输出的字段名和你期望的结果完全一致

如果你的业务场景必须用INNER JOIN实现(比如有其他关联逻辑要兼容),也可以用子查询先去重再分组统计,写法如下:

SELECT 
  t1.Name,
  COUNT(t1.Choice) AS numberOfChoices
FROM 
  (SELECT DISTINCT Name, Choice FROM 你的表名) t1
INNER JOIN 
  (SELECT DISTINCT Name FROM 你的表名) t2
ON t1.Name = t2.Name
GROUP BY 
  t1.Name;

第一种写法的执行效率和可读性都更高,优先推荐使用。

内容的提问来源于stack exchange,提问作者Gops60

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:45:04