`
Charles+java
  • 浏览: 180753 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据的双重排序

阅读更多

 

SELECT G.*, ROW_NUMBER() OVER(PARTITION BY a ,b ORDER BY c DESC) ROWN
2    from (select '1' a, '2' b, '1' c
3            from dual
4          union all
5          select '1', '2', '2'
6            from dual
7          union all
8          select '1', '3', '3'
9            from dual
10          union all
11          select '1', '3', '4'
12            from dual
13          union all
14          select '1', '4', '5' from dual
15          union all
16          select '1','3','5'from dual) G
17 ;

A B C       ROWN
- - - ----------
1 2 2          1
1 2 1          2
1 3 5          1
1 3 4          2
1 3 3          3
1 4 5          1

6 rows selected

 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码

分享到:
评论

相关推荐

    双重指针排序的例子,排序只交换地址,而不交换数据!

    在这个例子中,我们讨论的是如何利用双重指针进行排序,特别是在不实际交换数据的情况下,而是交换元素的引用或地址。这种方法在某些场景下可以提高效率,特别是对于大型对象或不可变对象时,避免了复制对象可能带来...

    数据结构:交换排序-冒泡排序实验指导

    ### 数据结构:交换排序-冒泡排序实验指导 #### 实验背景与目标 在计算机科学领域,数据结构和算法是核心研究对象,其中排序算法作为基础且重要的算法之一,广泛应用于各类数据处理场景。本实验旨在深入理解并掌握...

    冒泡排序及退出双重循环

    "退出单、双重循环"的概念在这里是优化冒泡排序的关键,它能够显著提高效率,尤其在处理大型数据集时。通过监控是否需要继续执行循环,我们可以避免不必要的操作,提升算法性能。 总的来说,通过学习这个VC++实现的...

    数据结构内部排序

    - 在冒泡排序函数`maopao`中,首先复制原始数组到一个新的数组`b`中,然后通过双重循环比较并交换元素,最终统计并输出比较次数和交换次数。 2. **直接插入排序实现**: - 直接插入排序函数`zhijiecharu`通过将...

    冒泡排序(数据结构)

    通过这样的双重循环,每一轮都会将当前未排序部分的最大值“冒泡”到序列的末尾。此外,还加入了打印功能,用于显示每一轮排序后数组的状态。 ### 主函数中的应用 最后,在`main`函数中,通过初始化一个包含10个...

    数据结构 冒泡排序 输出每一趟结果

    - 使用双重循环实现冒泡排序。 - 外层循环控制排序轮数,内层循环负责比较并交换相邻元素。 - 引入变量 `p` 来判断是否发生交换,如果某轮排序中没有发生任何交换,则提前结束排序过程。 #### 3. 输出结果 - 每轮...

    数据结构线性表快速排序

    - 实现:通过双重循环比较相邻元素的大小,若前者大于后者则交换位置,重复此过程直至排序完成。 ##### 4. 其他辅助函数 - **销毁函数** `Status Destroy(Sqlist& L)`: - 功能:释放线性表所占用的内存空间。 ...

    c++冒泡排序,从小到大排序或者从大到小

    排序的核心在于双重循环结构: 1. **外层循环**:`for(c=0;c;c++)`,控制整个排序过程的轮次,确保每次循环都能找到当前未排序部分的最大值。 2. **内层循环**:`for(b=0;b;b++)`,负责遍历数组中剩余未排序的部分,...

    MoreWindows白话经典算法之七大排序第2版(高清)

    - **冒泡排序1**:基本版本,通过双重循环完成排序。 - **冒泡排序2**:增加了提前结束排序的条件,提高了效率。 - **冒泡排序3**:进一步优化,记录最后一次交换的位置以减少不必要的比较。 **2. 直接插入排序** ...

    二维数组如何进行冒泡排序

    冒泡排序是一种简单的排序算法,在数据处理领域有着广泛的应用。对于一维数组而言,冒泡排序实现起来相对容易;然而,当涉及到二维数组时,排序的过程就变得复杂起来。本文通过一段C语言程序详细解释了如何对二维...

    常用排序算法的联机实验及结果分析

    插入排序通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 ### 4. 耗时测试结果与分析 文章通过实际的耗时测试,得到了不同排序算法在处理相同规模数据集时的表现情况,并对...

    [总结]各大内部排序算法性能比较+程序实现

    **基本原理**:插入排序是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 **程序实现**:在提供的代码片段中,`insretsort` 函数实现了...

    易语言排序去重复

    2. 双重循环检查:对于不支持自动去重的数据结构,可以使用双重循环,外层循环遍历数组元素,内层循环检查新元素是否已存在于处理过的元素中。如果不存在,则保留,否则跳过。 三、易语言源码实践 在易语言中,一个...

    java各种排序

    在Java中,可以通过双重循环实现选择排序,外层循环控制遍历次数,内层循环用于寻找当前未排序部分的最小值。 3. **插入排序**:插入排序的工作原理是将未排序的元素逐个插入到已排序的部分。Java中,你可以创建一...

    c#排序demo (按名字、年龄排序 大公司机试题)

    // 双重排序 var sortedByNameAndAgeAsc = people.OrderBy(p => p.Name).ThenBy(p => p.Age); var sortedByNameAndAgeDesc = people.OrderByDescending(p => p.Name).ThenBy(p => p.Age); ``` 以上就是C#中基于名字...

    冒泡,插入,快速和选择排序C源码

    1. **循环结构**:冒泡排序的核心是一个双重循环结构。外层循环控制遍历的轮数,内层循环则用来比较和交换相邻元素。 2. **优化措施**:在实际实现中,通过记录最后一次发生交换的位置来优化排序过程,避免不必要的...

    c语言的基本算法 数组排序

    - 选择法的时间复杂度是O(n^2),不适用于大规模数据排序,但它简单易懂,适用于小型数据集的排序。 3. **矩阵操作**: - 题目3展示了如何求3x3矩阵对角线元素之和。通过双重循环,可以遍历矩阵的每个元素,当行...

    内部排序算法比较、哈希表设计

    在计算机科学领域,数据结构和排序算法是两个基础且至关重要的概念。它们直接影响到程序的效率和性能。本文将深入探讨内部排序算法的比较以及哈希表的设计,以帮助我们理解如何有效地处理和操作数据。 首先,让我们...

    排序算法经典集锦(C、C#)

    排序算法是计算机科学中至关重要的一部分,它涉及到数据处理和算法效率。本文将介绍两种经典的排序算法——直接插入排序和希尔排序,并分别提供C语言和C#语言的实现代码。 1. 直接插入排序 直接插入排序是一种简单...

Global site tag (gtag.js) - Google Analytics