使用聚合值作为列计算Hive的中间结果

时间:2014-09-11 14:31:16

标签: hive

我想计算Hive中的列平均值,并从每行中扣除它,如下所示:

select *,(column1 - avg(column2)) from table

这可以通过单个查询来完成吗?

感谢,

1 个答案:

答案 0 :(得分:1)

可以使用Hive 0.12中提供的SQL分析,数据窗口是完整的表格

 select *, column1 - (avg(column2) over ()) from table

否则,您可以计算子查询中的avg(column2)并加入

 select *, column1 - avg_col2
 from table t
 full join (
      select avg(column2) as avg_col2
      from table 
      ) a