의해 그룹의 통합 기능을 수행하기 전에 열 유형을 변경 I가 MY_TABLE 테이블 :임 :
:transaction_id | money | team
--------------------------------------------
1 | 10 | A
2 | 20 | B
3 | null | A
4 | 30 | A
5 | 16 | B
6 | 12 | B
I는 팀 그룹 I 쿼리를 통해 최대, 최소값을 계산할 수
select team, max(money), min(money) from my_table group by team
그러나 null이 있으므로 평균 및 합을 계산할 수 없습니다. 즉
select team, avg(money), sum(money) from my_table group by team
이 실패합니다.
평균 및 합계를 계산하기 전에 열 유형을 변경하는 방법이 있습니까? 즉 출력을 다음과 같이 설정합니다.
team | avg(money) | sum(money)
--------------------------------------
A | 20 | 40
B | 16 | 48
고마워요!
내가 임팔라에 익숙하지 않아요하지만 당신이 원하는 한대로 SQL이 이미 작동합니다. Impala에는 COALESCE 또는 NULLIF 함수가 있습니까? SUM에 0을 사용할 수 있습니다. AVG를 다루는 것이 더 까다 롭습니다. –
문서에서는'sum'과'avg'에 대해 '지정된 열의 NULL 값을 가진 행이 무시됩니다.'라고 말합니다. –
질문하기 전에 쿼리를 테스트 했습니까? – sstan