2016-09-20 71 views
0

我想使用配置單元查詢來查找3列的平均值。 考慮下面的數據: Sample DataHIVE中不同列上的平均函數

我需要找到每個學生得分的平均分,然後佔總分的每所學校平均: NULL應該被忽略。

我的輸出應該是這樣的:

enter image description here

你們可以幫我在這裏每個學生的

+0

呃,你想獲得哪些輸出?你有兩個候選人。 –

+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代替IF IS NULL語句,如:COALESCE(Math,0) as Math