hive - 子查询中的 Group by 范围错误
问题描述
我正在使用 hive 1.1.0 ,发现这样一个令人困惑的错误。我想知道这是什么问题以及下次如何解释这种问题。
我遇到了这个问题,
FAILED: SemanticException [Error 10025]: Line 2:8 Expression not in GROUP BY key 'item_id'
使用时
select
item_id,
buy_num_sum_I_7days/sum(buy_num_sum_I_7days) item_buy_probability
FROM
(
select
item_id,
max(buy_num_sum_I_7days) buy_num_sum_I_7days
FROM
mytable
where
dt>=20210206 and dt<=20210208
group BY
item_id
)tt;
解决方案
您需要给一个空窗口,sum
因为它是一个聚合函数:
select
item_id,
buy_num_sum_I_7days/(sum(buy_num_sum_I_7days) over ()) item_buy_probability
FROM
(
select
item_id,
max(buy_num_sum_I_7days) buy_num_sum_I_7days
FROM
mytable
where
dt>=20210206 and dt<=20210208
group BY
item_id
)tt;
推荐阅读
- android - SSL 握手失败,Android 7.0 支持 secp256r1 曲线
- python - np.savetxt - 向 csv 文件添加一个标题
- c - 关于 C 中的结构和函数
- c# - 使用泛型将带有字符串键的字典转换为带有枚举键的字典
- r - R:解释 boot() 输出
- angular - 如何将 JSON 请求正文的值设置为数组而不是字符串
- wordpress - 使用过滤器更改默认页面标题 wordpress
- powershell - 是否可以使用 CmdLet 在 C# 中编写 PowerShell 提示函数?
- python - 如何在views.py中返回两个字典
- java - 如何使用 Java 代码用特定模式替换字符串中的未知子字符串?