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

如何合并两个检查相同标志列但值不同的SQL求和查询?

合并相同标志列不同取值的统计查询

嘿,这事儿处理起来超简单!你可以用条件聚合(在聚合函数里嵌入判断逻辑)把两条查询合并成一条,一次就能拿到两个统计结果,效率还更高。

最终合并后的SQL语句

SELECT 
  SUM(CASE WHEN delivery.delivery_completed = '1' THEN stock_deliveries.stockValue ELSE 0 END) AS stockValues1,
  SUM(CASE WHEN delivery.delivery_completed = '0' THEN stock_deliveries.stockValue ELSE 0 END) AS stockValues2
FROM `stock_deliveries` 
LEFT JOIN `delivery` ON `delivery`.`pk_deliveryId` = `stock_deliveries`.`fk_deliveryId` 
WHERE `stock_deliveries`.`fk_stockID` = '189'

代码逻辑解释

  • 核心是用CASE WHEN给每个统计分支加判断:当delivery_completed匹配目标值时,取对应的stockValue参与求和,否则取0(不会影响总和结果)。
  • 两个SUM()分别对应你原来两条查询的统计逻辑,最终结果会在同一行的两个字段里返回,方便后续直接使用。
  • 因为两条查询的过滤条件除了delivery_completed的取值,其余完全一致,所以把公共条件统一放到外层WHERE即可,不用重复写两次。

如果你的第二条查询里delivery_completed是其他取值(比如不是0),只要把第二个CASE WHEN里的判断值改成你需要的就行,扩展性很强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:34:31