代码之家  ›  专栏  ›  技术社区  ›  jamborta

在列计算配置单元中使用聚合值作为中间结果

  •  0
  • jamborta  · 技术社区  · 10 年前

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

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

    这是否可以在一次查询中完成?

    谢谢

    1 回复  |  直到 10 年前
        1
  •  1
  •   R. Chevallier    10 年前

    可以使用配置单元0.12中提供的SQL分析,数据窗口是完整的表

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

    否则,您可以计算子查询中的平均值(column2)并将其连接到子查询

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