복붙노트

[HADOOP] 하이브에서 지원되지 않는 중첩 하위 쿼리

HADOOP

하이브에서 지원되지 않는 중첩 하위 쿼리

하이브에서 아래 쿼리를 시도했습니다. 하지만 오류가 발생합니다. 다른 방법으로이 문제를 해결하도록 도와주세요.

select count(1) as OpenItems from issues i , issue_statuses s  

where s.id = i.status_id 

and  s.name NOT IN ('Closed','Passed','Rejected','On 

Hold','Baselined','Completed')

and i.project_id IN 

(select id from projects3 from

CASE WHEN ${projectname} = 'All' then id in

(select p.id from members m, projects3 p ,users_1 u

where m.project_id = p.id and u.id = m.user_id and u.status = '1'

and u.id IN 
(select u1.id from users_1 u1, Supervisor_hierarchy s1 where u1.mail = s1.email and s1.name = ${Superisorname})
group by p.id)
WHEN (${projectname} <>'All' and ${SubProject projectname} ='All') then id 
IN (select id from (select id from project_closure where parent_id in (select id from projects where name = ${projectname}) group by id)a)
WHEN (${SubProject projectname}<>'All' and ${projectname}<> 'All') then id 
IN (select id from(select id from project_closure where id in (select id from projects  where name = ${SubProject projectname}) group by id)a)
END
order by id)

오류 : 6 : 5 지원되지 않는 SubQuery 식 'id': SubQuery 식은 Parent 및 SubQuery 식을 모두 나타내며 유효한 조인 조건이 아닙니다.

해결법

  1. ==============================

    1.이 문제는 하이브 서브 쿼리의 아래 제한 사항 중 하나 이상이 발생할 때 발생합니다.

    이 문제는 하이브 서브 쿼리의 아래 제한 사항 중 하나 이상이 발생할 때 발생합니다.

    이 시나리오에서는 상위 쿼리에 대한 참조가 네 번째 제한에 해당하는 Group By 절에서 사용됩니다.

    하이브 하위 쿼리 제한 사항

    출처 : https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SubQueries

  2. from https://stackoverflow.com/questions/34920692/nested-subquery-not-supported-in-hive by cc-by-sa and MIT license