背景
工作中遇到这样一个需求, 就是需要查出品牌对应的所有分类, 目前品牌分类表大致结构如下:
av_seq | cp_seq |
---|---|
11111 | CC0000 |
11111 | CC1111 |
11111 | CC2222 |
22222 | CC3333 |
22222 | CC4444 |
最终想要的结果是:
| 11111 | CC0000, CC1111, CC2222
| 22222 | CC3333, CC4444
collect_set函数
collect_set 是 Hive 内置的一个聚合函数, 它返回一个消除了重复元素的对象集合, 其返回值类型是 array 。
上述需求就可以使用 collect_set 函数来实现, 具体SQL如下:
select av_seq, concat_ws(',', collect_set(cp_seq)) from dw.smbrandcp group by av_seq;