如何在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
相关产品推荐
相关产品推荐

