sql—如何根据某些条件在配置单元中获取收集集

wbgh16ku  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(376)

如何根据某些条件在Hive中获取收集集

id | num_of_cats
=====================
HOP            A

HOP            B

HOP            C

CAP            A

CAP            C

CAP            B

TOP            C

如果指示器是a,那么第一个字段是1。例如,顺序是a、b、c:第一行只包含a,所以指标是1,0,0;第二行只包含b,所以指标是0,1,0
应返回:

id | cats_aggregate    (indicator order is A,B,C)
===========================
HOP   Array<int>(1,0,0)

HOP   Array<int>(0,1,0)

HOP   Array<int>(0,0,1)

CAP   Array<int>(1,0,0)

CAP   Array<int>(0,0,1)

CAP   Array<int>(0,1,0)

TOP   Array<int>(0,0,1)
vvppvyoh

vvppvyoh1#

这应该是你想要的:

select id,
       array( (case when num_of_cats = 'A' then 1 else 0 end),
              (case when num_of_cats = 'B' then 1 else 0 end),
              (case when num_of_cats = 'C' then 1 else 0 end)
            )
from t;

相关问题