`

ORACLE 分析函数实例[处理冗余数据]

阅读更多
一.创建数据库表结构
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行列转换实例

    但通过 Oracle 的分析函数,我们可以轻松地将具有相同编号、电话号码、产品名称和营业区的用户的所有业务名称合并到一列,从而减少数据冗余。 3. 示例步骤 - 创建临时表: ```sql Drop Table temp; Create Table ...

    oracle精品实例,练习总结

    9. **数据库复制**:Oracle的逻辑复制技术如GoldenGate,物理复制如Data Guard,可实现数据冗余和灾难恢复。实例可能包含如何配置和维护这些复制解决方案。 10. **数据库架构**:Oracle支持多租户架构,如Container...

    Oracle数据库系统应用实例集锦与编程

    Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,它在企业级数据管理、数据分析以及事务处理中扮演着核心角色。本集锦旨在深入探讨Oracle数据库的应用实例与编程技术,帮助读者更好地理解和掌握这一...

    oracle优化篇及常用函数

    本篇文章将深入探讨Oracle数据库的优化策略,并提供一些常用的函数实例详解,帮助你更好地理解和应用这些技术。 首先,Oracle优化主要包括SQL优化、索引优化、存储优化和架构优化。SQL优化是最基础的,通过编写高效...

    企业oracle数据分析岗位面试题

    - **实例参数调整**:合理配置Oracle实例的相关参数,如缓存大小、缓冲区大小等。 - **索引构建**:建立适当的索引来加速查询操作。 - **逻辑优化**: - **表逻辑分割**:根据业务需求将大表分割成多个小表,如...

    Oracle数据库系统应用实例集锦与编程技巧

    Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,它提供了高效、稳定的数据存储和管理能力,被众多企业和组织用于核心业务系统。本资源“Oracle数据库系统应用实例集锦与编程技巧”旨在深入探讨...

    面向大型数据处理系统的Oracle数据库性能优化技术.pdf

    【标题】:“面向大型数据处理系统的Oracle数据库性能优化技术” 【概述】: 本文主要探讨了在大型数据处理系统中,针对Oracle数据库的性能优化策略。作者通过实例分析,提出了一套关键的优化技术和方法,以解决...

    最好最全的Oracle 数据库教程(内含命令使用实例)

    此外,标签中的"sql"表示SQL语言,它是与Oracle数据库交互的基础,不论是在开发、数据分析还是系统维护中都必不可少。"java"、"j2ee"、"struts"、"spring"和"hibernate"则与Java后端开发相关,这些技术常常与Oracle...

    Oracle教程

    8. DDL与DML:数据定义语言(DDL)用于定义和修改数据库的结构,而数据操纵语言(DML)用于处理数据,包括INSERT、UPDATE、DELETE等语句的使用。 9. 约束、视图和索引:约束用于保证数据的完整性,视图是虚拟表,...

    oracle的开发技术

    6. **统计函数**:Oracle提供了一系列统计函数,如COUNT用于计算行数,SUM用于求和,AVG用于求平均值,MAX和MIN用于找出最大值和最小值,以及VARiance和Stddev用于计算方差和标准差,帮助分析数据集的特征。...

    Oracle_note.zip_oracle

    11. RAC与数据冗余:Real Application Clusters (RAC) 是Oracle的集群技术,允许多个实例共享同一数据库,提供高可用性和负载均衡。数据冗余通过复制数据到多个节点来确保容错能力。 12. 分析与OLAP:Oracle数据库...

    Oracle教程PDF版本.zip

    9. **数据库设计**:文档可能涵盖ER模型、范式理论以及如何进行规范化设计,以减少数据冗余和提高数据一致性。 10. **数据库监控与诊断**:使用DBA视图、动态性能视图进行性能分析,以及AWR(Automatic Workload ...

    深入解析oracle 盖国强 带源码

    4. **存储过程与函数**:使用PL/SQL编写存储过程和函数,实现业务逻辑和数据处理,提高效率和安全性。 5. **事务管理**:掌握ACID(原子性、一致性、隔离性和持久性)特性,了解提交、回滚和保存点操作。 6. **...

    Oracle Database 12c应用与开发教程

    3. 数据库内并行执行(Database In-Memory Parallel Execution):通过并行执行引擎,Oracle 12c可以在内存中并行处理数据,提高大规模数据处理的效率。 二、Oracle 12c开发基础 1. SQL和PL/SQL:学习Oracle数据库...

    oracle方向很值得一看的内容

    Oracle在企业级数据管理、事务处理、数据仓库和云计算领域都有着深厚的技术底蕴。本压缩包文件“oracle.txt”可能包含了关于Oracle数据库的丰富知识,包括但不限于以下几个方面: 1. **Oracle数据库架构**:Oracle...

    Oracle电子教案、Oracle课堂笔记.rar

    2. Oracle体系结构:Oracle数据库的架构包括了数据库实例、数据库文件、控制文件、重做日志文件、参数文件等,这些元素如何协同工作来确保数据的持久性和一致性。 3. 表和索引:详细讲解如何创建、修改和删除表,...

    ORACLE ppt课件

    - OLAP(在线分析处理)支持快速的多维数据分析。 12. **Oracle云服务**: - Oracle提供的云数据库服务,如 Autonomous Database,提供自动化管理和高性能。 以上仅是Oracle数据库系统部分关键知识点的概括,...

Global site tag (gtag.js) - Google Analytics