需要指导来简化此查询

li9yvcax  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(334)

我们有一个有很多条件的巨大查询。但是,我们觉得有些条件是无关紧要的,你能告诉我如果 where 这里的子句,可以删除
请在下面找到这个巨大的查询(子查询)的摘录 where 条款

SELECT f1,  ... f10 
FROM A
JOIN
SELECT f1, f2 ... f10
FROM B where PROC_DT IN (SELECT PROC_DATE FROM C)
ON A.ID = B.ID
WHERE ISNOTNULL(PROC_DT)

我认为查询已经验证了从表b获取数据的过程日期。那么我们能把它移走吗 where 这里是子句。
有人能证实我的发现吗

am46iovg

am46iovg1#

是的,你是对的,因为里面的不能为空。我会使用一个内部连接代替,在某些情况下,它会更快。

SELECT f1,  ... f10 
FROM A
JOIN B ON A.ID = B.ID
join (SELECT DISTINCT PROC_DATE FROM C) AS X ON B.PROC_DT = X.PROC_DATE

相关问题