eg
| uid | label |
| A | A1 |
| A | A2 |
| B | B1 |
| B | B1 |
| B | B2 |
| uid | label_list |
| A | A1,A2 |
| B | B1,B2 |
# presto实现
select
uid
,array_join(array_distinct(array_agg(label), ',')) as "label_list"
from df
group by uid;
# mysql实现
select
uid
,group_concat(distinct label separator ',') as "label_list"
from df
group by uid
'''
语法:group_concat( [distinct] 字段 [order by 字段 asc/desc ] [separator '分隔符'] )
MYSQL中group_concat有长度限制!默认1024
SET [SESSION | GLOBAL] group_concat_max_len = val;
'''
本文探讨了在Presto和MySQL中进行数据聚合的方法,如array_distinct和group_concat,用于整理uid和label数据。在Presto中,使用array_join和array_agg实现标签去重和合并;而在MySQL中,利用group_concat函数,通过distinct关键字去除重复标签,并可调整结果分隔符。需要注意的是,MySQL的group_concat有长度限制,可通过设置group_concat_max_len变量来调整。

9643

被折叠的 条评论
为什么被折叠?



