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

如何将两条MySQL查询合并为一条,同时统计passed与failed数量?

可行,用条件聚合就能实现

你可以利用MySQL的条件聚合功能,把两个查询合并成一条,直接得到你想要的格式。核心思路是用SUM结合条件判断,分别统计passed和failed的数量。

方法一:用IF函数实现(MySQL专属简洁写法)

SELECT 
    MAX(build) AS Maxbuild,
    SUM(IF(status = 'passed', 1, 0)) AS passed,
    SUM(IF(status = 'failed', 1, 0)) AS failed
FROM bioraddash.fullsuite
WHERE build = 2980;

方法二:用CASE WHEN实现(标准SQL写法,兼容性更强)

SELECT 
    MAX(build) AS Maxbuild,
    SUM(CASE WHEN status = 'passed' THEN 1 ELSE 0 END) AS passed,
    SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) AS failed
FROM bioraddash.fullsuite
WHERE build = 2980;

原理说明

  • 因为WHERE已经限定了build = 2980,所以MAX(build)的结果必然是2980,和你原来两个查询里的MAX(build)效果一致。
  • SUM(IF(status = 'passed', 1, 0))会遍历每一行:如果status是passed就加1,否则加0,最终总和就是passed的数量;failed的统计逻辑同理。
  • 如果某类状态没有数据(比如例子里的failed为0),会自动返回0,完全符合你想要的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:17:07