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

SQL查询需求:找出Users表中经历全部5种状态的userId

查询经历全部5种状态的用户ID

要找出经历过所有5种状态的用户ID,我们可以通过分组统计每个用户的不同状态数量来实现,具体SQL语句如下:

SELECT userId
FROM Users
GROUP BY userId
HAVING COUNT(DISTINCT state) = 5;

逻辑说明

  • GROUP BY userId:按用户ID分组,将同一用户的所有记录归为一组
  • COUNT(DISTINCT state):统计每组内不同状态的数量,使用DISTINCT是为了避免同一用户重复同一状态导致统计结果失真
  • HAVING COUNT(DISTINCT state) = 5:筛选出不同状态数量恰好为5的用户,也就是经历过全部5种状态的目标用户

示例验证

结合你提供的示例数据,执行上述SQL后会返回userId=2,因为只有该用户包含了Unregistered、registered、subscribed、premier、unsubscribed所有5种状态。

内容的提问来源于stack exchange,提问作者samar taj Shaikh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:50:32