gpt4 book ai didi

sql - Hive/SQL捆绑列中的几列,其余列是基于拉的最低/最高其他列

转载 作者:行者123 更新时间:2023-12-02 20:53:39 35 4
gpt4 key购买 nike

我有一个 hive 表如下5列

name orderno productcategory amount description
KJFSFKS 1 1 40 D1
KJFSFKS 2 2 50 D2
KJFSFKS 3 2 67 D3
KJFSFKS 4 2 10 D4
KJFSFKS 5 3 2 D5
KJFSFKS 6 3 5 D6
KJFSFKS 7 3 6 D7
KJFSFKS 8 4 8 D8
KJFSFKS 9 5 8 D9
KJFSFKS 10 5 10 D10

基于相同产品类别代码的期望输出,如果跨多行的产品类别代码相同,则添加金额字段,根据最高订单号选择描述,订单号始终选择最低,输出如下
name    orderno productcategory amount  description
KJFSFKS 1 1 40 D1
KJFSFKS 2 2 127 D4
KJFSFKS 5 3 13 D7
KJFSFKS 8 4 8 D8
KJFSFKS 9 5 18 D10

如上所述,某些字段按某种顺序排列,其他字段按不同顺序排列

我使用了分组方式,但是sum(amount)很好,描述字段呢,它基于orderno列,所以我的要求中还有其他列应根据订单号选择

最佳答案

select name, orderno,  productcategory,  amount,   description 
from
(
select name, orderno, productcategory,
sum(amount) over(partition by name, productcategory) amount,
first_value(description) over(partition by name, productcategory order by orderno desc) description,
row_number() over (partition by name, productcategory order by orderno) rn
from your_table
)s where rn=1; --pick lowest orderno
OK
KJFSFKS 1 1 40 D1
KJFSFKS 2 2 127 D4
KJFSFKS 5 3 13 D7
KJFSFKS 8 4 8 D8
KJFSFKS 9 5 18 D10
Time taken: 12.492 seconds, Fetched: 5 row(s)

关于sql - Hive/SQL捆绑列中的几列,其余列是基于拉的最低/最高其他列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45328004/

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