如何解决分区上的 Hive 嵌套 SUM - 错误表达式不在 GROUP BY 键
我正在尝试在一个查询中获得累积总和。它在 sql、PRESTO 等中运行良好,但在 HIVE 中运行良好,这会引发错误消息。
create table test(store varchar(10),item int,quantity int)
insert into test
select 'depot',101,1
union select 'depot',2
union select 'depot',5
union select 'depot',102,3
商店 | 项目 | 收入 |
---|---|---|
仓库 | 101 | 1 |
仓库 | 101 | 2 |
仓库 | 101 | 5 |
仓库 | 102 | 1 |
仓库 | 102 | 3 |
select store,item,sum(sum(revenue)) over (partition by store order by item)
from test
group by store,item
预期输出:
商店 | 项目 | 数量 |
---|---|---|
仓库 | 101 | 8 |
仓库 | 102 | 12 |
错误:
[代码:40000,sql 状态:42000] 编译语句时出错: 失败:SemanticException 无法将 Windowing 调用分解为 团体。至少 1 个组必须仅依赖于输入列。还要检查 对于循环依赖。基本错误: org.apache.hadoop.hive.ql.parse.SemanticException:第 1:24 行 表达式不在 GROUP BY 键“收入”中
有什么建议吗?
解决方法
您可以分开查询:
select store,item,sum(sum_revenue) over (partition by store order by item) as revenue
from (
select store,sum(revenue) as sum_revenue
from test
group by store,item
) as t
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。