【问题标题】:How to use aggregate functions in Hive on Group by columns如何在 Hive 中按列分组使用聚合函数
【发布时间】:2012-10-15 15:39:09
【问题描述】:

当我尝试在配置单元中的 GroupBy 列上使用内置 UDF 函数或我自己的 UDF 函数时,我似乎遇到了错误

select col1, col2 from xyz group by my_func(col1), col2

它一直在抱怨column –col1 not found in group by expression

【问题讨论】:

    标签: hadoop hive hiveql


    【解决方案1】:

    当您将函数应用于列时,它不再被称为相同的东西。您应该使用 as 关键字明确命名它。

    select group1, group2 from xyz group by my_func(col1) as group1, col2 as group2;
    

    另外,如果您只选择分组依据的列,而不是实际分组的数据,那么distinct 可能比group by 更合适?

    【讨论】:

      【解决方案2】:

      对聚合函数的调用在错误的位置。应该是这样的:

      从 xyz 组中选择 my_func(col1),col2 by col1,col2

      【讨论】:

        【解决方案3】:
        select col1, col2 from xyz group by my_func(col1) as col1, col2 
        

        基本是您的 GROUP BY 需要包含您在 SELECT 子句中提到的所有列。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-11
          • 1970-01-01
          • 2017-10-18
          • 2014-05-17
          • 1970-01-01
          • 2014-05-29
          • 2018-05-04
          相关资源
          最近更新 更多