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

请求协助生成符合需求的SQL查询语句(修正现有查询问题)

修正你的SQL查询问题

嘿,我来帮你搞定这个SQL查询的问题!先看看你原查询里的几个明显问题:

  • group by mytable是语法错误哦,你应该按Name分组,因为你的需求是按每个Name来统计状态数量
  • 原查询没有明确标识统计的是哪种状态,结果里的计数列会让人搞不清对应Open还是Cleared
  • 用UNION的话会自动去重,如果你有Name在两个状态下都有数据,可能会丢失信息,更推荐用UNION ALL

下面给你两种符合需求的解决方案,你可以根据自己想要的结果格式来选:

方案1:分开行展示每个状态的统计结果

如果希望每个Name+状态组合单独一行展示,用这个查询:

SELECT 
    Name,
    COUNT(Status) AS Status_Count,
    'Open' AS Status_Type  -- 明确标注是哪种状态的统计
FROM mytable 
WHERE Status = 'Open'
GROUP BY Name

UNION ALL  -- 用UNION ALL避免不必要的去重,提升效率

SELECT 
    Name,
    COUNT(Status) AS Status_Count,
    'Cleared' AS Status_Type
FROM mytable 
WHERE Status = 'Cleared'
GROUP BY Name;

方案2:一行展示每个Name的两种状态数量

如果希望每个Name一行,同时展示Open和Cleared的数量(更直观的透视表形式),用条件聚合的方式:

SELECT 
    Name,
    -- 统计Status为Open的数量,不满足的会返回NULL,COUNT会忽略NULL
    COUNT(CASE WHEN Status = 'Open' THEN 1 END) AS Open_Count,
    COUNT(CASE WHEN Status = 'Cleared' THEN 1 END) AS Cleared_Count
FROM mytable
-- 只筛选需要的状态,提升查询效率
WHERE Status IN ('Open', 'Cleared')
GROUP BY Name;

这两个查询都能解决你原查询的问题,返回符合预期的统计结果~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:19:33