Hive 没有 not in 解决方案

来源:互联网 发布:汽车修理学习软件 编辑:程序博客网 时间:2024/06/06 00:32

hive 里面没有 not in ,where 查询时候可以 使用LEFT OUTER JOIN
dpods_wfa_processhistory 表结构
表结构
需要查询 param不为 ‘协议被驳回&’ 的ProcessId max(AddTime),
因为where不能使用not in,下面sql将bb表新增a字段,值为1(param值为 协议被驳回&)然后左外连接时,空值为取出的值。
SELECT ProcessId,
max(AddTime) AS AddTime
FROM dpods_wfa_processhistory cc
LEFT OUTER JOIN
(SELECT DISTINCT ProcessId AS procId,
1 AS a
FROM dpods_wfa_processhistory
WHERE param = ‘协议被驳回&’) bb ON cc.ProcessId = bb.procId
WHERE bb.a IS NULL
GROUP BY processId

0 0