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

如何在SQL中仅对指定产品的数量进行求和?

解决SQL中仅统计特定产品数量的问题

当然可以实现你想要的效果!你的思路方向是对的,但原语句的语法需要调整——SQL里不能直接在SUM里用WHEN,得结合条件判断函数来筛选特定产品的数量。

通用解决方案(适用于大多数数据库:MySQL、PostgreSQL、SQL Server等)

使用CASE WHEN语句来针对性统计产品A的数量:

SELECT 
  `ORDER`,
  SUM(CASE WHEN PRODUCT = 'A' THEN QTD ELSE 0 END) AS TOTAL_A_QUANTITY
FROM your_order_table
GROUP BY `ORDER`;

简化版(仅适用于支持IF函数的数据库,比如MySQL)

如果你的数据库支持IF函数,还可以用更简洁的写法:

SELECT 
  `ORDER`,
  SUM(IF(PRODUCT = 'A', QTD, 0)) AS TOTAL_A_QUANTITY
FROM your_order_table
GROUP BY `ORDER`;

逻辑说明

  • 这两个语句的核心逻辑是:遍历每一行数据,仅当PRODUCT等于'A'时,才将该行的QTD计入求和;否则用0填充,不影响最终总和。
  • 以你给出的示例数据为例,执行后会得到:
    ORDER | TOTAL_A_QUANTITY
    200    1
    

注意事项

  1. 因为ORDER是SQL的关键字,所以最好用反引号(`)或者双引号把它括起来,避免语法错误。
  2. 如果PRODUCT是字符串类型,一定要给'A'加上单引号。
  3. 别忘了用GROUP BY按订单分组,否则会得到所有订单中产品A的总数量,而不是每个订单单独的统计值。

内容的提问来源于stack exchange,提问作者Jonathan Livingston Seagull

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:55:47