1. 使用DISTINCT对查询结果去重

语法:SELECT DISTINCT [去重对象列], [列2], [列3].... FROM [表名]

例子:

1.1 原始数据

1.2 对ROLE(角色名)去重

注意点:查询的列必须保证除了被去重的列以外,其他列没有重复的值。

例如原始数据中POSITION列也有重复值,所以此处不查询POSITION列

1.3 对REGION(地区)列去重

2. 使用LISTAGG对查询结果合并

语法:SELECT [列1],

                     [列2],

                     LISTAGG([合并对象列], '[分割符]') WITHIN GROUP(ORDER BY [排序列]) AS [别名]

            FROM [表名]

            GROUP BY [列1],  [列2]

例子:

2.1 原始数据

      同【1.1 原始数据】

2.2 对POSITION(位置)列合并,以【;】间隔

 2.2 对ROLE(角色)列合并,以【,】间隔

 3.使用DISTINCT + LISTAGG对查询结果去重、合并

例子:

3.1 原始数据

      同【1.1 原始数据】

3.2 对ROLE(角色)列去重合并,以【&】间隔,以REGION(地区)排列

 3.3 对ROLE(角色)列去重合并,以【 and 】间隔,以SEX(性别)排列

【全文完】 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐