2016-04-30 12 views
0

Hiveでは3つの列の平均を計算しようとしていますが、運はありません。以下は私のコードです。Hadoop Hiveの複数の列にわたる平均の計算

select c.university_name, c.country, AVG(c.world_rank) as AvgC, AVG(s.world_rank) as AvgS, AVG(t.world_rank) as AvgT, SUM(AvgC+AvgS+AvgT)/3 as TotalAvg 
from cwur c 
    join shanghai s on (c.university_name = s.university_name and c.year = s.year) 
    join times t on (c.university_name = t.university_name and c.year = t.year) 

ハイブは、計算された3つの列にわたって平均化することもできますか?

答えて

0

あなたはgroup by句が欠落している

select 
     c.university_name, 
     c.country, 
     AVG(c.world_rank) as AvgC, 
     AVG(s.world_rank) as AvgS, 
     AVG(t.world_rank) as AvgT, 
     (AvgC+AvgS+AvgT)/3 as TotalAvg 
from cwur c 
join shanghai s on (c.university_name = s.university_name and c.year = s.year) 
join times t on (c.university_name = t.university_name and c.year = t.year) 
group by c.university_name, c.country