如何在Hive on Group by columns中使用聚合函数

时间:2012-10-15 15:39:10

标签: hadoop hive hiveql

当我尝试在群集中使用内置UDF函数或我自己的UDF函数时,如下面的hive中我似乎收到错误

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

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

对聚合函数的调用位置错误。它应该如下:

选择my_func(col1),col1从xyz group by col1,col2

答案 2 :(得分:0)

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

基本的是你的GROUP BY需要拥有你在SELECT子句中提到的所有col。