listagg函数的用法
回答
爱扬教育
2022-06-07
- 相关推荐
1、 要合并的列名
2、 自定义连接符号
☆LISTAGG 函数既是分析函数,也是聚合函数
所以,它有两种用法:
1、分析函数,如: row_number()、rank()、dense_rank() 等,用法相似
listagg(合并字段, 连接符) within group(order by 合并的字段的排序) over(partition by 分组字段)
2、聚合函数,如:sum()、count()、avg()等,用法相似
listagg(合并字段, 连接符) within group(order by 合并字段排序)--后面跟 group by 语句
扩展资料
一部分聚合函数其实也可以写成分析函数的形式。
分析函数和聚合函数本质上都是对数据进行分组,二者最大的不同便是:对数据进行分组分组之后,聚合函数只会每组返回一条数据,而分析函数会针对每条记录都返回,一部分分析函数还会对同一组中的数据进行一些处理(比如:rank() 函数对每组中的数据进行编号);还有一部分分析函数不会对同一组中的数据进行处理(比如:sum()、listagg()),这种情况下,分析函数返回的数据会有重复的,distinct 处理之后的结果与对应的聚合函数返回的结果一致。
分析函数和聚合函数本质上都是对数据进行分组,二者最大的不同便是:对数据进行分组分组之后,聚合函数只会每组返回一条数据,而分析函数会针对每条记录都返回,一部分分析函数还会对同一组中的数据进行一些处理(比如:rank() 函数对每组中的数据进行编号);还有一部分分析函数不会对同一组中的数据进行处理(比如:sum()、listagg()),这种情况下,分析函数返回的数据会有重复的,distinct 处理之后的结果与对应的聚合函数返回的结果一致。