进行左连接时,在右侧 table 标记所有缺失值的记录
Flagging records with all missing values on right table when doing a left join
我有两个 table 代表不同年份 Left Table: 2019
和 Right Table: 2018
的客户数据。其中一些客户在前一年不存在,我的假设是,在进行左连接时,这些客户将缺少来自右 table 的所有字段值。有没有办法标记这些客户(或记录)?下面是我的查询
create table joinedTable as
select a.unique_number, a.monthly_spend, b.unique_number, b.email_preference, b.client_tier,
from table2019 as a
left join table2018 as b
on a.unique_number = b.unique_number
下面是所需的输出。
unique_number
monthly_spend
email_prefernce
client_tier
Flag
12AB56FG
2000
Yes
Special
0
32AB56FG
1200
Yes
Special
0
42AB56FG
2010
Yes
Special
0
56AB56HG
3000
Yes
Special
0
72AB58FG
6000
NULL
NULL
1
92AB56FG
800
NULL
NULL
1
只需使用 case
表达式:
create table joinedTable as
select a.unique_number, a.monthly_spend, b.unique_number,
b.email_preference, b.client_tier,
(case when b.unique_number is null then 1 else 0 end) as flag
from table2019 a left join
table2018 b
on a.unique_number = b.unique_number;
我有两个 table 代表不同年份 Left Table: 2019
和 Right Table: 2018
的客户数据。其中一些客户在前一年不存在,我的假设是,在进行左连接时,这些客户将缺少来自右 table 的所有字段值。有没有办法标记这些客户(或记录)?下面是我的查询
create table joinedTable as
select a.unique_number, a.monthly_spend, b.unique_number, b.email_preference, b.client_tier,
from table2019 as a
left join table2018 as b
on a.unique_number = b.unique_number
下面是所需的输出。
unique_number | monthly_spend | email_prefernce | client_tier | Flag |
---|---|---|---|---|
12AB56FG | 2000 | Yes | Special | 0 |
32AB56FG | 1200 | Yes | Special | 0 |
42AB56FG | 2010 | Yes | Special | 0 |
56AB56HG | 3000 | Yes | Special | 0 |
72AB58FG | 6000 | NULL | NULL | 1 |
92AB56FG | 800 | NULL | NULL | 1 |
只需使用 case
表达式:
create table joinedTable as
select a.unique_number, a.monthly_spend, b.unique_number,
b.email_preference, b.client_tier,
(case when b.unique_number is null then 1 else 0 end) as flag
from table2019 a left join
table2018 b
on a.unique_number = b.unique_number;