gpt4 book ai didi

hadoop - 在配置单元表中为唯一 ID 添加一个新列

转载 作者:可可西里 更新时间:2023-11-01 15:28:31 25 4
gpt4 key购买 nike

我在 hive 中有一个表,其中包含两列:session_idduration_time,如下所示:

|| session_id || duration||

1 14
1 10
1 20
1 10
1 12
1 16
1 8
2 9
2 6
2 30
2 22

我想在以下情况下添加具有唯一 ID 的新列:

session_id 正在改变duration_time > 15

我希望输出是这样的:

session_id      duration    unique_id
1 14 1
1 10 1
1 20 2
1 10 2
1 12 2
1 16 3
1 8 3
2 9 4
2 6 4
2 30 5
2 22 6

有什么想法可以在 hive QL 中做到这一点吗?

谢谢!

最佳答案

SQL 表表示无序 集。您需要一个指定值顺序的列,因为您似乎很关心顺序。例如,这可以是 id 列或 created-at 列。

您可以使用累计和来做到这一点:

select t.*,
sum(case when duration > 15 or seqnum = 1 then 1 else 0 end) over
(order by ??) as unique_id
from (select t.*,
row_number() over (partition by session_id order by ??) as seqnum
from t
) t;

关于hadoop - 在配置单元表中为唯一 ID 添加一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39269481/

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