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

SQL如何生成统一公共键实现双向外汇货币对分组统计

货币对公共分组键生成方案

实现思路

无需使用自连接(会导致数据冗余、性能下降),仅需对每行的兑换双方符号做统一规则的拼接,即可保证正反方向的同一货币对生成完全相同的公共键:

  • 若兑换双方包含USD,统一将USD放在前缀位置,拼接成「USD+其他币种_其他币种+USD」的固定格式
  • 其余币种统一按规则绑定USD生成键即可
  • 按预期输出要求对SourceAmount统一取负值

可直接运行的SQL代码

SELECT
    -- 生成统一公共键
    CASE
        WHEN Symbol_from = 'USD' THEN CONCAT('USD', Symbol_to, '_', Symbol_to, 'USD')
        WHEN Symbol_to = 'USD' THEN CONCAT('USD', Symbol_from, '_', Symbol_from, 'USD')
        -- 其余非USD配对场景按需求扩展,示例默认归为其他类
        ELSE CONCAT('USD', Symbol_from, '_', Symbol_from, 'USD')
    END AS Common_String_Key,
    Tradedate,
    Symbol_from,
    -SourceAmount AS SourceAmount,
    Symbol_to AS DestSymbol_To,
    TradeAmount
FROM FX_Buy_Sell
ORDER BY Common_String_Key, Tradedate;

补充说明

你给出的预期结果中USDGBP_BGPUSD属于笔误,正确应为USDGBP_GBPUSD,EURO对应公共键为USDEURO_EUROUSD,若需要和你示例的下划线格式对齐,调整拼接逻辑中的分隔符即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:06:03