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都用起来吧)
您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧,前面几篇文章介绍的都是开发类的插件,这篇文章将介绍一下编码规范和静态代码检查相关的插件。
1760 0
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)
|
3月前
|
SQL Oracle 关系型数据库
迁移MySQL数据到Oracle实践记录
本文介绍SQL Developer迁移第三方数据库至Oracle的三种方式:①全库迁移(步骤繁杂、易报ORA-00942等错);②右键“Copy To Oracle”单表迁移(支持结构+数据,百兆级高效);③结合DBeaver导CSV+SQL Dev建表导入(500MB内可行)。推荐中小规模表级迁移。
306 0
|
9月前
|
XML 安全 测试技术
【干货满满】分享什么是API接口测试
API接口测试是验证应用程序编程接口功能、性能、安全性及兼容性的关键环节,通过模拟请求并验证响应结果,确保接口能正确处理各种输入和场景。测试内容涵盖功能验证、性能评估、安全防护、兼容性验证及系统可靠性。相比UI测试,API测试无需界面依赖,支持数据驱动与自动化,适用于持续集成流程。常见接口类型包括RESTful、SOAP和GraphQL API,广泛应用于电商、金融及社交平台,保障系统间数据交互的安全与高效。
|
NoSQL 测试技术 Go
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
|
11月前
|
SQL 监控 Java
菜鸟之路Day40一一事物管理&AOP
本文主要介绍了事物管理和AOP(面向切面编程)的相关知识。在事物管理部分,详细讲解了SQL中的事物控制语句以及Spring框架中的事物注解@Transactional的使用方法和属性配置,结合删除部门及员工的实际案例说明了事物传播行为的应用场景。AOP部分首先概述了其概念和优势,如代码复用与关注点分离,并通过计算service层方法运行时间的实例展示了AOP的实现方式。接着深入探讨了AOP的核心概念,包括切面、连接点、切入点和通知类型,最后通过一个综合案例——操作日志记录到数据库中,演示了如何利用自定义注解和AOP技术完成统一功能的添加。
268 40
idea中新建分支并且切换到新建的分支上
idea中新建分支并且切换到新建的分支上
1555 0
|
前端开发 JavaScript 开发工具
Python之JavaScript逆向系列——2、F12开发者工具
Python之JavaScript逆向系列——2、F12开发者工具
389 0
|
Ubuntu 网络协议 数据安全/隐私保护
RK3568开发笔记(六):开发板烧写ubuntu固件(支持mipi屏镜像+支持hdmi屏镜像)
编译了uboot,kernel,buildroot后,可以单独输入固件,也可以整体打包成rootfs进行一次性输入,rootfs直接更新升级这个方式目前也是常用的。本篇刷了2个镜像,一个支持mipi屏幕得ubuntu固件,一个支持hdmi固件,但是都不支持笔者的usb触摸屏
|
存储 程序员 PHP
修改session的过期(生存)时间
以下我以php为例,万变不离其宗,希望对大家都有用吧。 session与cookie: 了解过两者的众所都知道,有些信息保存到cookie,有些出于安全问题就不能直接存到浏览器,这就要用到session了。然而对于浏览器,一般都是默认20-30分钟自动销毁或者关闭浏览器就会销毁。这显示是很头疼的事情,比如我们要实现用户登陆功能,关闭浏览器就要重新登陆,这搞什么鬼?所以我们要去试图改变它们。网上众说纷纭,你可以选择去修改默认配置文件,如php为例,修改php.ini的函数。但是染念却不喜欢修改修改默认,也在网上看到某些程序员是没有权限修改的,所以我们需要做到如何不修改默认文件达到这样的功能。
270 0

热门文章

最新文章