我使用以下代码并获得以下错误
select d.searchpack,d.context, d.day,d,txnid,d.config, c.sgtype from ds3resultstats d join
context_header c on (d.context=c.contextid) where (d.day>='2012-11-15' and d.day<='2012-11-25' and c.sgtype='Tickler' and d.config like
'%people%') GROUP BY d.context limit 10;
FAILED: Error in semantic analysis: line 1:7 Expression Not In Group By Key d
我猜我正在错误地使用该组
答案 0 :(得分:7)
使用group by
时,您无法选择其他附加字段。您只能选择具有聚合函数的组密钥。
有关详细信息,请参阅hive group by。
代码示例:
select d.context,count(*)
from ds3resultstats
...
group by d.context
或通过乘法字段分组。
select d.context, d.field2, count(*)
from ds3resultstats
...
group by d.context, d.field2
答案 1 :(得分:2)
期望所有列都添加了group by。
即使我面临同样的问题,但我设法解决了这些问题。
您可以使用collect_set
和列名来获取输出。例如
select d.searchpack,collect_set(d.context) from sampletable group by d.searchpack;