微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

分区上的 Hive 嵌套 SUM - 错误表达式不在 GROUP BY 键

如何解决分区上的 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 举报,一经查实,本站将立刻删除。