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

SQLite合并两个count查询为结果列时两列计数值相同问题求助

问题原因

  • 关联缺失:你写的两个统计子查询没有和外层分组的ROWa、ROWb字段做关联,每行统计的都是全表符合条件的总计数,且子查询返回值均非空,COUNT统计时会把所有行计入,导致两列结果完全一致。
  • 别名冲突:子查询复用了外层表的别名x,导致字段匹配逻辑混乱,无法正确获取外层每行的分组条件。
  • 写法冗余:同表多维度计数的场景不需要嵌套多层子查询,用条件聚合即可实现,执行效率和可读性都更高。

正确实现写法

SELECT 
    x.ROWa, 
    x.ROWb, 
    COUNT(CASE WHEN Workflow = "VALUEone" AND Shorthistory = "False" THEN 1 END) AS ResultA,
    COUNT(CASE WHEN Status = "successfull" THEN 1 END) AS ResultB
FROM
    tableA x
-- 若原逻辑中没有用到y表的任何字段,可直接删除下面这行LEFT JOIN关联,避免关联产生多余行导致计数偏差
LEFT JOIN tableB AS y ON SUBSTR(x.ROWb, 4, 1) = y.ROWz
WHERE 
    x.ROWc IN (5, 6) 
    AND (SUBSTR(x.ROWb, 4, 1) = "6" OR SUBSTR(x.ROWb, 4, 1) = "9") 
GROUP BY 
    x.ROWa, x.ROWb
ORDER BY
    ResultA DESC, x.ROWb ASC, x.ROWa ASC

上述写法利用了COUNT统计时会忽略NULL值的特性,只统计满足对应条件的行数,和你两个独立查询的统计逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 13:36:04