HIVE中不同列的平均功能

时间:2016-09-20 11:55:26

标签: sql hive aggregate-functions hue bigdata

我想使用hive查询找到3列的平均值。 考虑以下数据: Sample Data

我需要找到每个学生得分的平均分数,然后是每所学校的总分数平均值: 应该忽略NULL。

我的输出应如下所示:

enter image description here

你们能帮帮我吗

2 个答案:

答案 0 :(得分:0)

每位学生的平均成绩:

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

每所学校的平均分数

{{1}}

答案 1 :(得分:0)

Hive应自动忽略报告here的聚合上的NULL值。

为了便于阅读,我建议使用COALESCE代替IF IS NULL语句,例如:COALESCE(Math,0) as Math