2013-07-05 4 views
0

가 HiveQL이 할 수있는 방법이 있나요 WHERE 사용 절에서 SELECT :HiveQL :

SELECT ......  

from 
     default.thm_renta_produits_jour rpj 
     WHERE 
      rpj.co_societe = '${hiveconf:in_co_societe}' 
     AND rpj.dt_jour >= (SELECT MIN(dt_jour) FROM default.calendrier WHERE co_an_semaine = '${hiveconf:in_co_an_sem}') 

내가이 작업을 수행 할 때이 오류가 얻을 수 있기 때문에 :

FAILED: ParseException line 51:26 cannot recognize input near 'SELECT' 'MIN' '(' in expression specification 

감사합니다,

답변

0

하이브는 WHERE 절의 하위 쿼리를 지원하지 않습니다. 아마 당신은 너무 같은 JOIN 절에 서브 쿼리를 이동하여이 문제를 해결할 수 있습니다

SELECT 
    rpj.* 
FROM 
    default.thm_renta_produits_jour rpj 
JOIN 
    ( SELECT MIN(dt_jour) AS min_dt_jour 
     FROM default.calendrier 
     WHERE co_an_semaine = '${hiveconf:in_co_an_sem}' 
    ) m 
WHERE 
    rpj.co_societe = '${hiveconf:in_co_societe}' 
    AND rpj.dt_jour >= m.min_dt_jour; 

희망을.

관련 문제