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

基于type列符号对notional列求和的SQL实现需求

没问题,这需求用CASE表达式配合SUM函数就能轻松实现,直接上解决方案和细节说明:

最终SQL语句
SELECT 
  SUM(
    CASE 
      WHEN type = 'BUY' THEN notional 
      WHEN type = 'SELL' THEN -notional 
      ELSE 0  -- 兼容未定义的交易类型,避免异常值干扰
    END
  ) AS signed_notional_total
FROM trades;

代码逻辑拆解

  • 符号映射:通过CASE语句把type转换成对应的符号逻辑:
    • 遇到BUY类型,保留notional的正值;
    • 遇到SELL类型,把notional转为负值;
    • 加ELSE 0是个好习惯,万一表中出现了BUY/SELL之外的交易类型,这些记录不会影响最终求和结果。
  • 求和计算:SUM函数会自动把所有经过符号处理后的notional值累加,最终得到带符号的总金额,我们给结果列起了个清晰的别名signed_notional_total。

验证你的测试数据

用你提供的初始化数据跑这条SQL,计算过程是这样的:

  • 两条BUY记录的总和:20000 + 20000 = 40000
  • 三条SELL记录的总和:-100000 - 400000 - 600000 = -1100000
  • 最终总金额:40000 + (-1100000) = -1060000

完全符合你要的带符号求和需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:47:03