2016-09-20 2 views
0

하이브 쿼리를 사용하여 평균 3 열을 찾고 싶습니다. 아래의 데이터를 고려 NULL은 무시해야합니다 Sample DataHIVE의 다른 열에 대한 평균 함수

나는 각 학생에 의해 득점 평균 표시 한 후 각 학교에서 총 부호의 평균을 찾아야합니다.

내 출력은, 다음과 같이

enter image description here

너희들은 각 학생의

+0

어 : 쉽게 읽을

, 나는 같은 COALESCE 대신 IF IS NULL의 문을 사용하는 것이 좋습니다? 두 명의 후보자가 있습니다. –

+0

데이터를 이미지가 아닌 형식이 지정된 텍스트로 게시하십시오. 이것은 사람들이 일할 모범을 보이도록 도와 줄 것입니다. [MCVE]를 통해 질문을 개선 할 수도 있습니다 – Aleksej

+0

먼저 각 학교에서 각 학생의 평균 점수를 찾아야합니다. 그런 다음 개별 학교 (A 학교 및 B 학교)의 점수 평균을 구해야합니다. . – Vaishak

답변

0

평균 여기 좀 도와 수 : 각 학교의

select school,SL_No,Name,Math,Phy,Chem,(if(Math is NULL,0,Math)+if(Phy is NULL,0,Phy)+if(Chem is NULL,0,Chem))/3 as avg_marks from my_table 

평균 마크

select school,avg(avg_marks) from (select school,SL_No,Name,Math,Phy,Chem,(if(Math is NULL,0,Math)+if(Phy is NULL,0,Phy)+if(Chem is NULL,0,Chem))/3 as avg_marks from my_table 
) temp group by school 
0

하이브는 NULL 집계 값을 자동으로 무시해야합니다 (here). 당신이 얻을하려는 출력 COALESCE(Math,0) as Math

관련 문제