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

如何使用COUNT、GROUP BY、HAVING查询得到的id执行后续SQL查询

SQL查询问题修正

错误点说明

  • IN运算符要求子查询仅返回用于匹配的单个列,你的子查询同时返回了id和num_days两列,无法和外层的id字段完成匹配校验
  • 原SQL末尾存在多余的双引号,会触发语法报错

修正后查询语句

SELECT id, date
FROM daily_activity
WHERE id IN (
    SELECT id
    FROM daily_activity
    GROUP BY id
    HAVING COUNT(id) < 31
)
ORDER BY id, date

可选优化写法(窗口函数实现,仅需一次表扫描,性能更优)

SELECT id, date
FROM (
    SELECT 
        id,
        date,
        COUNT(*) OVER(PARTITION BY id) AS day_count
    FROM daily_activity
) AS activity_stat
WHERE day_count < 31
ORDER BY id, date

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:18:02