2014-01-30 37 views
1

我想知道是否可以重寫以下查詢,以便第一個where子句生成可以加入到小表並進一步過濾的大表的子集。有效加入的Hive查詢

SELECT * 
FROM big_table x 
JOIN small_table y 
ON trim(x.ip_adress) = trim(y.ip_address) 
WHERE eventdate = '2013-09-01' 
AND unix_timestamp(cast(x.date AS TIMESTAMP)) - unix_timestamp(cast(y.date AS TIMESTAMP)) < 100 LIMIT 5 ; 

回答

1
SELECT * 
FROM (SELECT * 
     FROM big_table 
     WHERE eventdate = '2013-09-01') x 
JOIN small_table y ON trim(x.ip_adress) = trim(y.ip_address) AND 
         unix_timestamp(cast(x.date AS TIMESTAMP)) - 
          unix_timestamp(cast(y.date AS TIMESTAMP)) < 100 
LIMIT 5; 
+0

由於小煜,這正是我一直在尋找。 – Istvan