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

MySQL查询:获取存在重复question_id的response_set_id列表

解决SQL查询:找出存在重复question_id的response_set_id

没问题,我来帮你搞定这个查询需求!咱先明确一下:你需要从responses表中,找出那些同一个response_set_id下存在重复question_id的response_set_id列表,就像示例里的response_set_id=10,因为它里面question_id=3出现了两次。

你之前尝试的语句只统计了每个response_set下的question总数,没过滤重复的情况,所以达不到目的。这里给你两个可行的方案:

方案一:直接筛选重复的问题分组

SELECT response_set_id
FROM responses
GROUP BY response_set_id, question_id
HAVING COUNT(*) > 1

逻辑解释:

  • 先按response_set_id和question_id的组合分组,这样每个分组就代表「某个问卷集下的某个具体问题」
  • HAVING COUNT(*) > 1会筛选出那些同一个问题在同一问卷集里出现多次的分组
  • 最后提取这些分组对应的response_set_id,就是你要的结果

方案二:去重后的结果(避免同一response_set_id多次返回)

如果同一个response_set_id里有多个question_id重复(比如既有question_id=3重复,又有question_id=5重复),上面的语句会返回该response_set_id多次。如果你希望每个符合条件的response_set_id只出现一次,可以加上DISTINCT:

SELECT DISTINCT response_set_id
FROM responses
GROUP BY response_set_id, question_id
HAVING COUNT(*) > 1

拿你的示例数据测试的话,这两个语句都会返回10,完美符合你的期望结果~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:58:40