gpt4 book ai didi

hadoop - Hive Group by 自己加入后

转载 作者:可可西里 更新时间:2023-11-01 14:45:48 25 4
gpt4 key购买 nike

各位,

我们有一个要求,我们希望在使用 self 加入 HIVE 表后应用 group by 子句。

例如数据

CUSTOMER_NAME、PRODUCT_NAME、PURCHASE_PRICE

customer1,product1,20
customer1,product2,30
customer1,product1,25

现在我们想通过考虑所有产品的总和以及 CUSTOMER_NAME、PRODUCT_NAME 的后续组结果集来获取客户(只计算价格总和后的前 5 名客户,子查询中不存在产品名称)

select customer_name,product_name,sum(purchase_price)
from customer_prd cprd
Join (select customer_name,sum(purchase_prices) order by sum group by customer_name limit 5) cprdd
where cprd.customer_name = cprdd.customer_name group by customer_name,product_name

收到错误消息说不能在 HIVE 中这样分组?

最佳答案

加入后,您的列名变得不明确。 Hive 不知道您是否关心连接左侧或右侧的那个。在这种情况下,没关系,因为您正在对它们进行内部连接,但 hive 不够聪明,无法解决这个问题。试试这个:

select cprd.customer_name, cprd.product_name, sum(purchase_price)
from customer_prd cprd
Join (select customer_name, sum(purchase_price) as sum from customer_prd group by customer_name order by sum desc limit 5) cprdd
where cprd.customer_name = cprdd.customer_name group by cprd.customer_name, cprd.product_name;

关于hadoop - Hive Group by 自己加入后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23613399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com