gpt4 book ai didi

sql - 使用 collect_set 的 Hive 查询

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

我有 2 个表,sample_table1,下面有两列

C1  C2
001 a
001 b
001 e
002 c
002 b
003 a
003 c

sample_table2 两列为

C3  C4
a 0
b 1
c 0
d 1
e 0

我想得到这样的输出

F1    F2
001 1 <as 001 -> [a, b, e] -> [0, 1, 0] -> 1 (if one of the items in the collection ([a, b, e] in this case) is 1, then Column F2 should be 1 )>
002 1 <as 002 -> [c, b] -> [0, 1] -> 1>
003 0 <as 003 -> [a, c] -> [0, 0] -> 0>

我尝试了很多 Hive 的内置聚合函数 collect_set,但无法解决。我想知道我是否可以在不编写任何自定义 UDF 的情况下做到这一点?

最佳答案

不需要collect_set

select      t1.c1       as f1
,max(t2.c4) as f2

from sample_table1 t1
join sample_table2 t2
on t1.c2 = t2.c3

group by t1.c1
;

+-----+----+
| f1 | f2 |
+-----+----+
| 001 | 1 |
| 002 | 1 |
| 003 | 0 |
+-----+----+

关于sql - 使用 collect_set 的 Hive 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42896875/

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