`
nannan408
  • 浏览: 1770880 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

架构师之oracle--------------over partion by代替group by去重

 
阅读更多
1.前言.
   如题.oracle去重需要考虑效率和可操作性,group by比较麻烦,overpartion by比较方便。. 下面是本人关于over partion by的两点经验.
2.技巧.
   (1) 用over partion by比用group by+max好点。
   (2)根据rownum<100000等操作,取最新的条件,这样可以避免全表扫描.
3.代码。


 select * from( select tName,
       sName,
       taName,
       aId,
       cTime,
       rCode,
       rid,
       Row_number() OVER (PARTITION BY tName,sName,taName,aId ORDER BY rid desc)  rn
  from (select
         a.id rid,
         b.t_name   tName,
         a.s_name  sName,
         a.rcode rCode,
         c.tname   taName,
         a.accid  aId,
         a.CTM   cTime
          from  a,
                  b,
                       c
         where a.t_type = b.t_code
           and a.t_id = c.id
           and a.acc_id ='11111'
           and rownum<100000 
            order by cTime desc,tName,sName,taName,rCode )
 order by cTime desc
) where rn=1
 


这里over partion by 直接用形如
Row_number() OVER (PARTITION BY tName,sName,taName,aId ORDER BY rid desc)  rn 


的分组计数器放到要查询的记录最后门,然后包起来用rn=1来去重就可以了,简单粗暴方便,推荐。
0
0
分享到:
评论

相关推荐

    Oracle查询中OVER (PARTITION BY ..)用法

    Oracle查询中的`OVER (PARTITION BY ..)`是一个窗口函数,它允许我们在数据集上执行计算,但不是在整个结果集上,而是针对每个分区。这部分功能非常强大,可以用于复杂的分析和排序任务,尤其是在处理分组数据时。在...

    详解partition by和group by对比

    在SQL查询中,`GROUP BY` 和 `PARTITION BY` 都是用来处理数据分组的,但它们在功能和使用场景上有所不同。首先,`GROUP BY` 是一个基础的分组函数,它根据指定的列将数据进行分组,并且通常与聚合函数如 `SUM`, `...

    fuzzy-partion.rar_fuzzy logic code_fuzzy logic source_logic

    本资源包含了一个名为“fuzzy partion.m”的MATLAB模糊逻辑程序源码,下面将对这个程序进行深入解读,并探讨模糊逻辑的基本概念、实现原理以及其在实际问题中的应用。 一、模糊逻辑基础 1. 模糊集理论:模糊逻辑的...

    Oracle分区表详解

    ### Oracle 分区表详解 #### 一、Oracle 分区简介 Oracle 的分区技术是一种用于管理和优化超大型表和索引的有效手段。通过将一个大型的表或者索引分割成多个较小且可管理的部分,分区技术能够显著提升数据库的性能...

    js代码-Partion寻找中位数

    在JavaScript编程语言中,"js代码-Partion寻找中位数"这个主题涉及到的是数据排序和统计中的一个重要概念——中位数。中位数是一组数值的中间值,当数值按大小顺序排列后,如果数值个数是奇数,中位数就是正中间的...

    lunch_r58_20160906.7z

    给全志R58增加一个lunch为cb5801.txt 开发板:全志R58的官方开发板R58_PER3_LPDDR3_32X1_V1_1.pdf 目标:给全志R58增加一个lunch为cb5801 BSP:r58_20160823.tar.gz(2016/8/22从全志的git服务器拿下来的系统) ...

    oracle表分区.[归类].pdf

    Oracle数据库的分区技术是针对大型数据表和索引的一种高效管理策略,旨在通过将大对象分解成可管理和独立操作的较小部分,实现性能优化、可用性提升和维护简便。本篇将详细介绍Oracle分区的原理、优缺点以及各种分区...

    Github 项目推荐 用 Pytorch 实现的 WaveNet-Vocoder

    option gpu=* -p &lt;your_partion_name&gt; --gres=gpu:$0 --time 10-00:00:00 --- # run the recipe $ ./run.sh ``` 应用 该项目的应用场景非常广泛,例如语音合成、语音识别等。 使用预先训练的模型 用户可以使用...

    ORACLE分区与索引

    Oracle 分区与索引是数据库管理系统中用于优化大数据查询的关键技术。Oracle 分区是一种将大表和索引分成可管理的小部分,以提高查询效率、维护性和可用性。这种技术适用于处理海量数据,通过将数据分散到不同的存储...

    lunch_cb5801_r58_20160907.7z

    给全志R58增加一个lunch为cb5801.txt 开发板:全志R58的官方开发板R58_PER3_LPDDR3_32X1_V1_1.pdf 目标:给全志R58增加一个lunch为cb5801 BSP:r58_20160823.tar.gz(2016/8/22从全志的git服务器拿下来的系统) ...

    lichee_20170502_1607_全志R16的linux系统编译需要改动的文件_使用parrotv1.1的内核_没有外层目录.7z

    rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ tar zxvf lichee_parrotv1.1_20161202.tar.gz rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ rootroot@cm-System-Product-Name:/home/wwt/linux_...

    GHOST软件教程

    Local-&gt;Partion-&gt;From Image **GHOST图文教程:** 1. **Ghost简介** - Ghost 8.x系列支持在DOS下运行,能备份和恢复系统,支持多种文件系统如FAT, FAT32, NTFS, ext2, ext3, linux swap等。 - Ghost 8.x分为DOS...

    grub4dos-0.4.4

    在书写menu.lst 时,我们要用半角英文,标点之类的全是半角的;title root kernel initrd 全是小写的英文;切注意大小写;  3]书写menu.lst ,怎么书写,对我来说难吗?不难!  我们打开menu.lst 后,可能里面已经...

    赛门铁克公司_Ghost_数据备份与恢复工具的使用图文教程

    - **Local -&gt; Partion**:选择此项可以对硬盘分区进行操作,具体包括: - **To Partion**:将一个分区的内容复制到另一个分区。 - **To Image**:将一个或多个分区的内容复制到一个镜像文件中,常用于系统备份。 ...

    MYSQL 通过分区(Partition)提升MySQL性能

    PARTITION BY RANGE (YEAR(c3)) ( PARTITION p0 VALUES LESS THAN (1995), PARTITION p1 VALUES LESS THAN (1996), PARTITION p2 VALUES LESS THAN (1997), PARTITION p3 VALUES LESS THAN (1998), PARTITION ...

    linux全志R16的linux系统编译的资料_20170502_1655.7z

    全志R16平台编译linux系统V1.0.txt 2017/4/11 13:36 (编译请使用编译android的lichee的选项编译生成的.config文件,不然直接编译会报错!!...rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ tar zxvf ...

Global site tag (gtag.js) - Google Analytics