Oracle之如何组合去重

简介: Oracle之如何组合去重

今日份知识学习

今天接着昨天的文章来说,跟昨天我们要说的需求不太一样,今天主要来说如何组合去重,一起来讨论一下解决方案,学习一下吧。

具体讲解

我们经常会遇到针对一些组合数据进行去重的开发需求,比如这样的数据,user_table表中的有重复name,我们要将这些数据进行合并,并且进行去重操作。

首先,我们没有必要再拆分了,在之前文章中我们已经讲过如何拆分字符串数据了,本次就不再赘述了。

直接就按照顺序合并name字段吧。

看一下下面的SQL示例:

select listagg(name) with group(order by age) from user_table connect by level <= (select count(*) from user_table)

如此我们就得到了一个合并后的字符串。

去重

去重的操作有很多,今天就说一个笨方法,那就是先去重再进行组合操作。

select distinct name from user_table

完善之前已经写过的SQL:

select listagg(name) with group(order by name) from user_table connect by level <= (select count(*) from (select distinct name from user_table))

如此,得到的结果集也就不存在重复结果了。

其实还有另外一种方式,那就是wm_concat和distinct组合后的结果。

wm_concat 加 distinct

通过wm_concat函数加上distinct关键字进行聚合去重。

select wm_concat(distinct name) from user_table group by name

通过这个SQL,我们就可以得到一个去重的组合字符串了。

之前文章中就说过,wm_concat因为oracle版本的不同,返回的数据类型会不同,所以大家在用的时候要多试试。

总结

今天我们学习了如何对拆分的字符进行组合去重,在书写复杂SQL时常遇到的问题,在这篇文章中你学会了吗?

最近开始来学习Oracle数据库的一些知识,其中包含一些函数的使用,或者是特性的介绍讲解等,将会在系列文章内说到。

喜欢的可以关注一下专栏。

目录
相关文章
|
XML JavaScript 前端开发
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)
您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧,前面几篇文章介绍的都是开发类的插件,这篇文章将介绍一下编码规范和静态代码检查相关的插件。
1428 0
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)
|
Java
sonar入门:使用sonar-scanner检测代码
sonar入门:使用sonar-scanner检测代码
1900 0
sonar入门:使用sonar-scanner检测代码
|
安全 机器人 程序员
Windows 计划任务每天隔 3 小时运行一次批处理文件详细配置步骤
Windows 计划任务每天隔 3 小时运行一次批处理文件详细配置步骤
2007 2
|
Java 数据库连接 应用服务中间件
|
SQL 缓存 Oracle
Oracle 数据库表和约束条件的增删改查
Oracle 数据库表和约束条件的增删改查
316 0
|
编解码 IDE 开发工具
python ini文件包含中文时报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x8c 的解决办法
python ini文件包含中文时报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x8c 的解决办法
942 1
|
自然语言处理 数据可视化 机器人
使用ChatGPT生成思维导图
使用ChatGPT生成思维导图
652 0
|
Ubuntu 网络协议 数据安全/隐私保护
RK3568开发笔记(六):开发板烧写ubuntu固件(支持mipi屏镜像+支持hdmi屏镜像)
编译了uboot,kernel,buildroot后,可以单独输入固件,也可以整体打包成rootfs进行一次性输入,rootfs直接更新升级这个方式目前也是常用的。本篇刷了2个镜像,一个支持mipi屏幕得ubuntu固件,一个支持hdmi固件,但是都不支持笔者的usb触摸屏