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

如何合并两个表获取各分类对应的心愿单日期和最后下单日期

解法

你只需要左连接两张表后,通过CASE WHEN按Category字段匹配对应分类的下单日期即可,标准SQL写法如下:

SELECT 
    w.EmailAddress,
    w.wish_created_date,
    w.Category,
    CASE w.Category
        WHEN 'Curtain' THEN lco.last_curtain_order
        WHEN 'Table' THEN lco.last_table_order
        WHEN 'Sofa' THEN lco.last_sofa_order
        WHEN 'Chair' THEN lco.last_chair_order
    END AS last_cat_order
FROM wish w
LEFT JOIN last_category_orders lco 
    ON w.EmailAddress = lco.EmailAddress

这个写法完全匹配你给出的预期结果:

  • a用户Curtain分类心愿单匹配last_curtain_order的Aug-5-2021
  • e用户Sofa分类心愿单对应last_sofa_order为空,所以返回null

如果使用支持Map函数的SQL引擎(如Spark SQL、Hive SQL),可以简化写法:

SELECT 
    w.*,
    map(
        'Curtain', last_curtain_order,
        'Table', last_table_order,
        'Sofa', last_sofa_order,
        'Chair', last_chair_order
    )[Category] AS last_cat_order
FROM wish w
LEFT JOIN last_category_orders lco USING(EmailAddress)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:51:03