如何在Snowflake中用参考表创建数据准确性校验SQL查询
Snowflake SQL 数据准确性校验方案
要筛选出客户记录表中State与Region/Subregion组合不符合参考表的记录,可以通过左连接参考表并对比字段值的方式实现,具体步骤如下:
核心思路
- 以客户记录表为主表,通过
State字段左连接参考表,获取该State对应的正确Region和Subregion。 - 筛选出两类异常记录:客户表的
Region与参考表对应值不一致,或客户表的Subregion与参考表对应值不一致;若需要,还可包含参考表中不存在的State记录。
实现SQL
假设两张表名称分别为customer_submissions(客户记录表)和state_region_ref(参考表),执行以下查询:
SELECT cs.ID, cs.State, cs.Region, cs.Subregion FROM customer_submissions cs LEFT JOIN state_region_ref ref ON cs.State = ref.State WHERE cs.Region != ref.Region OR cs.Subregion != ref.Subregion -- 可选:如需包含参考表无匹配的State记录,添加下方条件 -- OR ref.State IS NULL ORDER BY cs.ID;
结果验证
针对提供的测试数据,执行上述SQL后会返回预期的两条异常记录:
| ID | State | Region | Subregion |
|---|---|---|---|
| 3469 | California | East | Pacific |
| 5890 | Maine | East | North |
补充说明
- 若表名或字段名有差异,直接替换SQL中对应名称即可。
- 若存在大小写敏感场景,可使用
UPPER()函数统一转换后对比,例如UPPER(cs.Region) != UPPER(ref.Region)。
内容的提问来源于stack exchange,提问作者Benjamin
相关产品推荐
相关产品推荐

