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

如何在Snowflake中用Join实现按维度跨表填充数据

Snowflake SQL:通过Join关联生成表C

要实现需求,只需将表B的记录(或去重后的MONTH_YEAR+DIMENSION组合)与表A按DIMENSION字段关联,提取表A的C_TYPE和百分比字段即可。以下是具体实现:

基础实现(保留表B所有原始记录)

CREATE OR REPLACE TABLE C AS
SELECT
    b.MONTH_YEAR,
    b.DIMENSION,
    a.C_TYPE,
    a.PERCENTAGE_C_TYPE_DIMENSION
FROM B
INNER JOIN A 
    ON b.DIMENSION = a.DIMENSION;

去重版本(处理表B重复组合)

如果表B中同一MONTH_YEAR+DIMENSION出现多次,会导致表C生成重复记录,此时可先对表B去重再关联:

CREATE OR REPLACE TABLE C AS
SELECT
    b_distinct.MONTH_YEAR,
    b_distinct.DIMENSION,
    a.C_TYPE,
    a.PERCENTAGE_C_TYPE_DIMENSION
FROM (
    SELECT DISTINCT MONTH_YEAR, DIMENSION 
    FROM B
) AS b_distinct
INNER JOIN A 
    ON b_distinct.DIMENSION = a.DIMENSION;

可选:保留表B无匹配维度的记录

若需要保留表B中那些在表A里没有对应维度的记录(此时C_TYPE和百分比会显示为NULL),将INNER JOIN替换为LEFT JOIN即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 14:48:23