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

如何在SQL中按投资者聚合数据并按规则设置货币列值

问题解决:按投资者分组聚合金额并按规则确定货币

原SQL的问题

  • 语法错误:sum(Amount) 后缺少逗号,导致SQL无法正常执行
  • 逻辑错误:CASE语句仅针对单行的货币值做判断,而非基于整个分组的货币分布情况;同时按c1和Investors分组会拆分同一投资者的记录,无法实现按投资者统一聚合的需求

正确的SQL语句

SELECT 
    SUM(Amount) AS `Amount(金额)`,
    CASE 
        WHEN SUM(CASE WHEN currency = 'GBP' THEN 1 ELSE 0 END) > 0 THEN 'GBP'
        ELSE 'USD'
    END AS `currency(货币)`,
    Investors AS `Investors(投资者)`
FROM 
    your_table  -- 替换为你的实际表名
GROUP BY 
    Investors;

逻辑说明

  1. 金额聚合:SUM(Amount) 对同一投资者的所有金额求和,满足需求中的聚合要求
  2. 货币判断:
    • SUM(CASE WHEN currency = 'GBP' THEN 1 ELSE 0 END) 统计当前投资者分组内GBP货币的记录数量
    • 若统计结果大于0,说明组内包含GBP,按规则显示GBP
    • 若统计结果为0,说明组内只有USD或NULL,按规则显示USD
  3. 分组规则:仅按Investors分组,确保同一投资者的所有记录被合并为一行

验证结果

执行上述SQL后,将得到预期输出:

Amount(金额)currency(货币)Investors(投资者)
250GBPCoinvest I
860GBPParalell
126USDPSLO

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 04:55:31