【发布时间】:2020-03-09 13:21:59
【问题描述】:
我有一个加载了时间戳列的历史表。我需要使用时间戳列获取减去的数据。 逻辑:通过(loaded_timestamp -1)和current_timestamp减去数据得到email地址。只有减去的数据应该是输出。
选择查询:
select t1.email_addr
from (select *
from table t1
where loaded_timestamp = current_timestamp
) left outer join
(select *
from table t2
where loaded_timestamp = date_sub(current_timestamp,1)
)
where t1.email!=t2.email;
表格有以下列
Email address, First name , last name, loaded_timestamp.
xxx@gmail.com,xxx,aaa,2020-03-08.
yyy@gmail.com,yyy,bbb,2020-03-08.
zzz@gmail.com,zzz,ccc,2020-03-08.
xxx@gmail.com,xxx,aaa,2020-03-09.
yyy@gmail.com,yyy,bbb,2020-03-09.
想要的结果
zzz@gmail.com
因此,如果从同一张表中减去两个日期,即 (2020-03-09 - 2020-03-08 )。我应该只得到不匹配的记录。匹配的记录应该被丢弃,不匹配的记录应该是输出。
【问题讨论】:
-
我已经提供了所有的细节。数据集看起来像上面提到的例子,其中将有重复数据的加载_时间戳列。我的期望是收到当前日期不存在的电子邮件。注意:t1 n t2 属于同一张表。