如何使用参考表创建准确性质量检查

问题描述 投票:0回答:1

我在雪花中有两个表 - 一个包含客户填写的记录的表,以及一个包含州,地区和子区域字段的参考表。参考表是准确的,因为如果州是“加利福尼亚”,区域和次区域分别是西部和太平洋。

我正在尝试创建质量检查以确认我的记录表中的数据也是准确的。当记录没有反映州/地区/子地区的准确组合时,雪花 sql 查询应该会产生结果。例如,如果一条客户记录包含“加利福尼亚”、“东部”、“太平洋”,我希望这条记录显示在查询结果中。

我试图连接这两个表,但我正在为 sql 语法而苦苦挣扎。也审查了不同的案例陈述组合,但到目前为止没有成功。

参考表

状态 地区 次区域
加州 西 太平洋
阿拉巴马州 东南
缅因州 东北

客户记录表

ID 状态 地区 次区域
3469 加州 太平洋
4874 阿拉巴马州 东南
5890 缅因州

希望查询结果显示:

ID 状态 地区 次区域
3469 加州 太平洋
5890 缅因州
sql geolocation left-join snowflake-schema
1个回答
0
投票

我想你想要

not exists
.

显示所有州/地区/次地区无效的客户(即不存在于参考表中):

select c.*
from customer c
where not exists (
    select 1
    from reference r
    where r.state = c.state and r.region = c.region and r.subregion = c.subregion
)

我们还可以专门寻找状态存在但区域/子区域无效的客户:

select c.*
from customer c
where not exists (
    select 1
    from reference r
    where r.state = c.state and r.region = c.region and r.subregion = c.subregion
) and exists (
    select 1
    from reference r
    where r.state = c.state
)
© www.soinside.com 2019 - 2024. All rights reserved.