hive查询以检查在特定月份中添加的数据库中尚不存在的条目

时间:2016-07-07 10:08:20

标签: hive

我需要检查06-2016中添加的新emailId是否已经存在于数据库之前。

我使用NOT IN运算符编写了查询:

.png

我已经确认当时有新的电子邮件,但它会返回空的结果集。这是为什么?事实上,当我用IN运算符替换NOT IN运算符时,它确实返回了常见的运算符,但不知何故NOT IN表现不正常。

1 个答案:

答案 0 :(得分:0)

使用传统的sql方法左连接

IE

with result as (select DISTINCT SF.customer_email FROM Magento.sales_flat_order SF WHERE YEAR(TO_DATE(SF.created_at)) = '2016' AND MONTH(TO_DATE(SF.created_at)) = '6' ) , result2 (select DISTINCT SFO.customer_email FROM Magento.Sales_flat_order SFO WHERE TO_DATE(SFO.created_at) <= '2016-05-31') select result.customer_email from result left join result2 on result.customer_email =result2.customer_email where result2.customer_emai is NULL OR result2.customer_emai='' OR length(result2.customer_emai) = 0

注意:如果空列值正确处理,result2.customer_emai为NULL就足够了。