一.创建数据库表结构
create table test1(
id number primary key,
code1 VARCHAR2(20) not null,
code2 varchar2(20) not null,
code3 number
)
二.创建测试数据
id code1 code2 code3
=======================================
1 1 1 a 30
2 2 1 b 40
3 3 1 c 50
4 4 2 a 26
5 5 2 e 11
6 6 2 f 33
7 7 3 g 25
8 8 3 t 25
9 9 1 a 21
三.业务描述
1.查询code1,code2 两个字段全部出现重复的记录信息
select t.* from (
select id,code1,code2,code3,count(*) over (partition by code1,code2) as 重复次数 from test1
) t where t.重复次数 > 1
运行结果:
id code1 code2 code3 重复次数
==================================================
1 1 1 a 30 2
2 9 1 a 21 2
2.业务追加:在以上基础上追加条件,只显示code3值最小的记录
select t.* from (
select id,code1,code2,code3,count(*) over (partition by code1,code2) as 重复次数,min(code3) over(partition by code1,code2) as c3 from test1
) t where t.重复次数 > 1 and t.code3 = t.c3
执行结果:
id code1 code2 code3 重复次数
==================================================
1 9 1 a 21 2
3.追加业务:在以上基础上继续追加条件,如果code3值最小的记录有多条,那么只显示其中rowid最小的那条记录
为了体现这个业务 特在库表中加入一条数据
id code1 code2 code3
=====================================================
10 1 a 21
select * from (
select t.*,min(rowid) over(partition by code1,code2,code3) as m_rwid from (
select id,code1,code2,code3,count(*) over (partition by code1,code2) as 重复次数,min(code3) over(partition by code1,code2) as c3,
rowid from test1
) t where t.重复次数 > 1 and t.code3 = t.c3
) where m_rwid = rowid
--三层的select 这sql写的比冗余数据都冗余 有好想法的请留言 - -
执行结果:
==================================================================================
1 9 1 a 21 3 21 AAARbLAABAAAV9RAAI AAARbLAABAAAV9RAAI
关于over函数,可以点击
http://www.iteye.com/topic/575434
分享到:
相关推荐
但通过 Oracle 的分析函数,我们可以轻松地将具有相同编号、电话号码、产品名称和营业区的用户的所有业务名称合并到一列,从而减少数据冗余。 3. 示例步骤 - 创建临时表: ```sql Drop Table temp; Create Table ...
9. **数据库复制**:Oracle的逻辑复制技术如GoldenGate,物理复制如Data Guard,可实现数据冗余和灾难恢复。实例可能包含如何配置和维护这些复制解决方案。 10. **数据库架构**:Oracle支持多租户架构,如Container...
Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,它在企业级数据管理、数据分析以及事务处理中扮演着核心角色。本集锦旨在深入探讨Oracle数据库的应用实例与编程技术,帮助读者更好地理解和掌握这一...
本篇文章将深入探讨Oracle数据库的优化策略,并提供一些常用的函数实例详解,帮助你更好地理解和应用这些技术。 首先,Oracle优化主要包括SQL优化、索引优化、存储优化和架构优化。SQL优化是最基础的,通过编写高效...
- **实例参数调整**:合理配置Oracle实例的相关参数,如缓存大小、缓冲区大小等。 - **索引构建**:建立适当的索引来加速查询操作。 - **逻辑优化**: - **表逻辑分割**:根据业务需求将大表分割成多个小表,如...
Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,它提供了高效、稳定的数据存储和管理能力,被众多企业和组织用于核心业务系统。本资源“Oracle数据库系统应用实例集锦与编程技巧”旨在深入探讨...
【标题】:“面向大型数据处理系统的Oracle数据库性能优化技术” 【概述】: 本文主要探讨了在大型数据处理系统中,针对Oracle数据库的性能优化策略。作者通过实例分析,提出了一套关键的优化技术和方法,以解决...
此外,标签中的"sql"表示SQL语言,它是与Oracle数据库交互的基础,不论是在开发、数据分析还是系统维护中都必不可少。"java"、"j2ee"、"struts"、"spring"和"hibernate"则与Java后端开发相关,这些技术常常与Oracle...
8. DDL与DML:数据定义语言(DDL)用于定义和修改数据库的结构,而数据操纵语言(DML)用于处理数据,包括INSERT、UPDATE、DELETE等语句的使用。 9. 约束、视图和索引:约束用于保证数据的完整性,视图是虚拟表,...
6. **统计函数**:Oracle提供了一系列统计函数,如COUNT用于计算行数,SUM用于求和,AVG用于求平均值,MAX和MIN用于找出最大值和最小值,以及VARiance和Stddev用于计算方差和标准差,帮助分析数据集的特征。...
11. RAC与数据冗余:Real Application Clusters (RAC) 是Oracle的集群技术,允许多个实例共享同一数据库,提供高可用性和负载均衡。数据冗余通过复制数据到多个节点来确保容错能力。 12. 分析与OLAP:Oracle数据库...
9. **数据库设计**:文档可能涵盖ER模型、范式理论以及如何进行规范化设计,以减少数据冗余和提高数据一致性。 10. **数据库监控与诊断**:使用DBA视图、动态性能视图进行性能分析,以及AWR(Automatic Workload ...
4. **存储过程与函数**:使用PL/SQL编写存储过程和函数,实现业务逻辑和数据处理,提高效率和安全性。 5. **事务管理**:掌握ACID(原子性、一致性、隔离性和持久性)特性,了解提交、回滚和保存点操作。 6. **...
3. 数据库内并行执行(Database In-Memory Parallel Execution):通过并行执行引擎,Oracle 12c可以在内存中并行处理数据,提高大规模数据处理的效率。 二、Oracle 12c开发基础 1. SQL和PL/SQL:学习Oracle数据库...
Oracle在企业级数据管理、事务处理、数据仓库和云计算领域都有着深厚的技术底蕴。本压缩包文件“oracle.txt”可能包含了关于Oracle数据库的丰富知识,包括但不限于以下几个方面: 1. **Oracle数据库架构**:Oracle...
2. Oracle体系结构:Oracle数据库的架构包括了数据库实例、数据库文件、控制文件、重做日志文件、参数文件等,这些元素如何协同工作来确保数据的持久性和一致性。 3. 表和索引:详细讲解如何创建、修改和删除表,...
- OLAP(在线分析处理)支持快速的多维数据分析。 12. **Oracle云服务**: - Oracle提供的云数据库服务,如 Autonomous Database,提供自动化管理和高性能。 以上仅是Oracle数据库系统部分关键知识点的概括,...