今天我们介绍两个函数 collect_sets 和 collect_list,其实看到这两个函数的名字你也能猜个七七八八了,我们都知道如果我们在使用聚合函数的时候,或者分组汇总的时候,我们算出来的都是具体的指标,例如求和、计数什么的,举个例子,假设 我们有一张表student(stu_id int,class_id int)
,一般情况下我们都是统计这个每个班级有多少学生,那这个SQL 很简单
select
class_id,count(stu_id) as stu_cnt
from
student
group by
class_id
这是我们比较常见的计算场景,现在如果我想获得每个班的学生列表,最终的结果是下面这样的
class_id,stulist
班级1,stu1 stu2 stu3 stu4
班级2,stu5 stu6 stu6 stu8
就是每个班级对应一个列表(或者是字符串