2016-08-26 4 views
0

임팔라의 모든 그룹에서 "총계"열을 만드는 방법을 찾고 있습니다.창 함수를 사용하는 임팔라의 총계 열

는 이렇게 분할 된 그룹의 합계를 얻기 위해 윈도우 함수를 사용하여 쉽게 :

합 (X) (A 의한 분할) 위에

그것에 의해 분할하는 발현이 있음을 표시하지 않는 그러나 '모든'. 임팔라의 단점입니까? 당신은 over statement를 비워 둘 수 있습니다.

답변

0

파티션 절은 선택 사항입니다. 예를 들어

select sum(x) over() from t; 

:

[localhost:21000] > select id, sum(id) over() from tbl; 
+----+-------------------+ 
| id | sum(id) OVER(...) | 
+----+-------------------+ 
| 0 | 28    | 
| 1 | 28    | 
| 2 | 28    | 
| 3 | 28    | 
| 6 | 28    | 
| 7 | 28    | 
| 4 | 28    | 
| 5 | 28    | 
+----+-------------------+ 
Fetched 8 row(s) in 0.08s 
+0

나는이 작업을 수행 할 수있는 몇 가지 이유로이 같은 쿼리를 작성할 수 있습니다. 내가 얻은 : errorMessage : AnalysisException : 선택 목록 표현식 집계 출력 (GROUP BY 절에서 누락?) : sum (X) OVER() 문제는 전체 쿼리 GROUP BY 절에 없습니다 (매우 간단합니다 , 한 컬럼 씩 그룹화). 내가 성명에 의해 파티션을 포함하는 경우 분석 기능을 사용할 수 있습니다. – Jonathan

+0

다른 문의 사항이 있습니다. 더 많은 쿼리를 게시 할 수 있습니까? a.app , 합계를 선택 – Matt

+0

(a.rev) 'rev_by 그룹' , 합으로서 (a.rev) 위에()에 a.app 결과에 rev_table 그룹 '전체' 등 :을 (GROUP BY 절에서 누락 된) 목록 출력을 선택하십시오. sum (a.rev) OVER() GROUP BY 절에 이미 포함 된 다른 집계되지 않은 열은 이해할 수 없습니다. 이것을 해석하는 방법을 모르겠다. 도움 주셔서 감사합니다 btw Logged – Jonathan