Hadoop 配置单元[Error 10025]表达式不在GROUP BY中

Hadoop 配置单元[Error 10025]表达式不在GROUP BY中,hadoop,hive,Hadoop,Hive,第一个查询运行良好。但是第二个查询通过键-3给出了不在GROUP中的error[error 10025]表达式。我读了相关的帖子,到目前为止我不知道如何修复错误 非常感谢你在这方面的帮助 问题1 SELECT case when user_id = '-3' then cast(order_id as varchar(255)) else user_id end as user_id2 from orders where user_id = '-3' 问题2 SELECT case when

第一个查询运行良好。但是第二个查询通过键-3给出了不在GROUP中的error[error 10025]表达式。我读了相关的帖子,到目前为止我不知道如何修复错误

非常感谢你在这方面的帮助

问题1

SELECT case when user_id = '-3' then cast(order_id as varchar(255)) else user_id end as user_id2
from orders
where user_id = '-3' 
问题2

SELECT case when user_id = '-3' then cast(order_id as varchar(255)) else user_id end as user_id2
       ,sum(order_value) as sales
from orders
group by 1


Traceback (most recent call last):
File "/home/net1/liulu001/conversant/troubleshooting_userid.py", line 28, in <module>
cursor.execute(q)
File "/home/net1/liulu001/.local/lib/python2.6/site-packages/impala/hiveserver2.py", line 302, in execute
configuration=configuration)
File "/home/net1/liulu001/.local/lib/python2.6/site-packages/impala/hiveserver2.py", line 343, in execute_async
self._execute_async(op)
File "/home/net1/liulu001/.local/lib/python2.6/site-packages/impala/hiveserver2.py", line 362, in _execute_async
operation_fn()
File "/home/net1/liulu001/.local/lib/python2.6/site-packages/impala/hiveserver2.py", line 340, in op
async=True)
File "/home/net1/liulu001/.local/lib/python2.6/site-packages/impala/hiveserver2.py", line 1027, in execute
return self._operation('ExecuteStatement', req)
File "/home/net1/liulu001/.local/lib/python2.6/site-packages/impala/hiveserver2.py", line 957, in _operation
resp = self._rpc(kind, request)
File "/home/net1/liulu001/.local/lib/python2.6/site-packages/impala/hiveserver2.py", line 925, in _rpc
err_if_rpc_not_ok(response)
File "/home/net1/liulu001/.local/lib/python2.6/site-packages/impala/hiveserver2.py", line 704, in err_if_rpc_not_ok
raise HiveServer2Error(resp.status.errorMessage)
impala.error.HiveServer2Error: Error while compiling statement: FAILED:       SemanticException [Error 10025]: Line 3:13 Expression not in GROUP BY key ''-3''

您没有在第一个查询中进行聚合,因此不需要group by。 在第二个查询组中,1被视为常量。当user_id='-3'时按情况分组,然后将castorder_id改为varchar255,否则user_id结束

或者,如果希望能够按位置而不是按名称引用列名,请在查询之前尝试以下操作:

set hive.groupby.orderby.position.alias=true;

非常感谢。我想我已经尝试过按您建议的语法使用该组,但也出现了类似的错误。但是我又试了一次,效果很好。所以问题解决了。再次感谢!那么,你对我的回答满意吗?那么请投票、接受或建议我如何改进答案。是的,对答案感到满意。刚刚投票表决有用。我猜在投票达到某个临界点之前0是不会改变的?再次感谢!