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

SQL查询:统计无drawing、singing爱好的用户总数量

解决方法

我们可以通过排除法实现需求:先筛选出所有拥有drawing或singing爱好的用户ID,再统计剩余的用户总量即可,以下是两种常用的实现写法:

写法1:使用NOT IN子查询(可读性更高)

SELECT COUNT(*) AS qualified_user_count
FROM users
WHERE id NOT IN (
    SELECT DISTINCT user_id
    FROM hobbies
    WHERE hobby IN ('drawing', 'singing')
);

说明:内层子查询先去重拿到所有有drawing或singing爱好的用户ID,外层直接统计不在这个ID集合里的用户总数,和示例数据匹配的查询结果为1。

写法2:使用左连接过滤(大数据量下性能更优)

SELECT COUNT(DISTINCT u.id) AS qualified_user_count
FROM users u
LEFT JOIN hobbies h 
    ON u.id = h.user_id 
    AND h.hobby IN ('drawing', 'singing')
WHERE h.id IS NULL;

说明:通过左连接匹配用户的drawing/singing爱好记录,匹配不到的就是没有这两类爱好的用户,直接统计即可得到结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:36:03