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

基于条件的SQL金额计算:总金额扣除指定Code的金额

计算总金额扣除指定Code记录后的金额

数据表结构与数据

TicketAmountCode
115.00
123.00X
1310.00
142.00X

用户现有SQL

SELECT SUM(AMOUNT) 
FROM Table
MINUS 
SELECT SUM(Amount)
FROM Table
WHERE Code = 'X'

优化方案与说明

你当前用MINUS的写法虽然可能得到正确结果,但MINUS是集合差集操作,这里两个查询都返回单个数值,属于过度使用,而且需要扫描两次表,效率偏低。

更简洁高效的是单表扫描完成计算,两种推荐写法:

写法1:直接筛选符合条件的金额求和

SELECT SUM(CASE WHEN Code != 'X' OR Code IS NULL THEN Amount ELSE 0 END) AS Total_After_Deduction
FROM YourTable;

写法2:总金额减去目标Code的金额总和

SELECT SUM(Amount) - COALESCE(SUM(CASE WHEN Code = 'X' THEN Amount ELSE 0 END), 0) AS Total_After_Deduction
FROM YourTable;

两种写法都能直接得到预期结果15,且仅需一次表扫描。另外注意:Table是SQL关键字,建议替换为实际表名(比如示例中的YourTable),避免语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 02:24:14