에 서브 쿼리를 변환 나는 COLC 값의 특정 평균의 witha COLB에 의해 groupbed 콜라의 수를 필요로하는 쿼리가 있습니다. 예단일 쿼리 하이브
SELECT COUNT(X.colA), X.colB , X.MEASURE
FROM (
SELECT colA , colB , avg(colC) MEASURE
FROM tableA
GROUP BY colA, colB
HAVING round(avg(colC),2) > 0
) X
GROUP BY X.MEASURE , X.colB
HAVING X.MEASURE BETWEEN 0 AND 3000
ORDER BY MEASURE
예시적인 결과 일 수
No of User, URL , average time spent
90182 , abc.com, 334
293556 , def.com, 33
상기 쿼리 문제는 서브 쿼리를 갖기 때문에 내부 서브 쿼리 외부 쿼리에 중간 결과로서 대량의 데이터를 섞은 것을 인 큰 데이터 세트에서 쿼리가 매우 느려지 게됩니다.
위의 쿼리를 하위 쿼리없이 쿼리로 변환 할 수있는 방법이 있습니까? 아니면 UDAF를 사용할 수 있습니까? 따라서 더 이상 중간 데이터의 주요 전환이없고 단일 스테이지에서 실행됩니까?