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

BigQuery分组Gap Fill实现:表A按表B客户ID全量重复匹配咨询

实现多客户对应全量阶段列表的SQL方案

核心逻辑是先构造「每个客户 + 全量阶段」的基准全集,再左关联表B的业务数据做匹配,具体实现如下:

  • 首先提取表B中所有去重的客户ID,和表A的全量阶段做交叉连接,生成所有客户对应的全量阶段基准数据
  • 用基准数据左关联原始表B,匹配条件为客户ID和阶段编码同时一致,即可得到目标结果

完整SQL语句:

SELECT 
    base.PStage,
    base.StageOrder,
    base.ID,
    b.stage
FROM (
    -- 构造每个客户对应全量阶段的基准全集
    SELECT 
        b_cust.ID,
        a.PStage,
        a.StageOrder
    FROM A
    CROSS JOIN (SELECT DISTINCT ID FROM B) AS b_cust
) AS base
LEFT JOIN B 
    ON base.ID = B.ID 
    AND base.PStage = B.stage
ORDER BY base.ID, base.StageOrder;

执行后输出结果会按照客户ID分组,每个客户对应完整的8条表A阶段数据,仅该客户在表B中存在的阶段会填充stage字段值,其余阶段stage字段为null。
如果需要未匹配的位置填充客户ID,只需要把b.stage替换为COALESCE(b.stage, base.ID)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:45:04