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

利用ROW_NUMBER()函数实现按条件分组排序

 
阅读更多

背景:
我想删除表中的重复数据,但是我又想以某些条件进行排序,然后再删除,用普通的GROUP BY相对麻烦,可以尝试这个方法。

数据准备:
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7499, 'ALLEN', 'SALESMAN', 7698, to_date('20-02-1981', 'dd-mm-yyyy'), 1600.00, 300.00, 30);

insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7500, 'ALLEN', 'SALESMAN', 7698, to_date('01-02-1980', 'dd-mm-yyyy'), 1600.00, 300.00, 30);



数据过滤:
select *
  from (select /*+ parallel(t,8)*/
         row_number() over(partition by t.ename order by t.hiredate desc) rn,
         t.empno,
         t.ename,
         t.hiredate,
         rowid row_id
          from emp t)
 where rn >= 2;
分享到:
评论

相关推荐

    oracle分析函数row_number() over()使用

    Oracle的分析函数`ROW_NUMBER() OVER()`是一种强大的工具,用于在查询结果集中为每一行分配一个唯一的序列号。这个函数通常用于数据分页、排名或者为特定条件的记录分配顺序。下面我们将详细讨论`ROW_NUMBER() OVER...

    ROW_NUMBER() OVER函数的基本用法

    1. 分页:可以使用 ROW_NUMBER() OVER 函数来实现数据库的分页功能。 2. 自动添加字段编号:可以使用 ROW_NUMBER() OVER 函数来自动添加字段编号。 3. 数据分析:可以使用 ROW_NUMBER() OVER 函数来对数据进行分析和...

    SQLServer中Partition By及row_number 函数使用详解

    通过这些示例,我们可以看到 `PARTITION BY` 和 `ROW_NUMBER()` 在处理分组和排序问题时的强大功能,它们是SQL Server中进行复杂数据分析的重要工具。理解并熟练掌握这两个函数,将有助于优化和提升我们的SQL查询...

    oracle row_number用法

    `ROW_NUMBER()`函数是Oracle数据库中一个非常强大的工具,特别是在需要对数据进行分组和排序时。通过掌握其基本用法以及与其他窗口函数的结合使用,可以在数据处理和分析方面发挥重要作用。无论是简单的排序还是复杂...

    Mssql 增加排序列,分组排序与普通排序 ROW_NUMBER.docx

    在SQL Server中,`ROW_NUMBER()` 是一个窗口函数,它为查询结果集中的每一行提供一个唯一的整数。这个函数通常用于实现分页或者在排序数据时为每一行分配顺序号。在Mssql中,`ROW_NUMBER()` 可以与 `OVER` 子句一起...

    分页存储过程,仅适用于Sql2005以上,使用 ROW_NUMBER()函数用于多表分页查询,可以分组查询

    2. **构造分页查询语句**:利用 `ROW_NUMBER()` 函数对结果集进行行编号,并根据用户的分页请求(如当前页码、每页大小等)构造最终的分页查询语句。 3. **执行查询**:执行分页查询语句,并返回结果集。 #### 四、...

    row_number.rar_SQL中row_number用法_number

    在SQL语言中,`ROW_NUMBER()`函数是一种非常重要的窗口函数,用于为查询结果集中的每一行分配一个唯一的整数。这个数字通常按照行的出现顺序进行分配,但也可以根据特定的排序条件进行调整。`ROW_NUMBER()`在数据...

    row_number,根据多个字段过滤,partition by

    本篇文章将围绕如何利用`ROW_NUMBER()`函数结合`PARTITION BY`子句来实现基于多个字段的过滤操作,以解决在给定描述中的问题——即如何根据`name`、`idNumber`以及`date`这三个字段过滤教师表中的重复数据,并仅保留...

    row_number

    3. **复杂排序**:当需要对多列进行排序时,可以利用 `ROW_NUMBER()` 来实现复杂的排序逻辑。 综上所述,`row_number()` 函数在 SQL 中的应用非常广泛,不仅可以帮助我们快速解决数据排序问题,还能在更复杂的场景...

    深入探讨:oracle中row_number() over()分析函数用法

    Oracle数据库中的`row_number() over()`分析函数是一个非常实用的工具,用于为数据集中的每一行分配一个唯一的整数,这个数字基于指定的排序条件。在处理大数据集时,它可以帮助我们进行分页、排名或者在复杂的查询...

    Gbase 8s内置函数之窗口函数

    1. ROW_NUMBER() 函数:ROW_NUMBER() 函数可以对数据进行排名,例如,计算某个部门的员工排名: ```sql SELECT ROW_NUMBER() OVER (PARTITION BY f_deptid ORDER BY f_salary DESC) AS f_order, f_deptname, f_...

    ROW_NUMBER SQL Server 2005的LIMIT功能实现(ROW_NUMBER()排序函数)

    ROW_NUMBER() 函数是 SQL Server 2005 ...通过这些示例,我们可以看到 ROW_NUMBER() 函数在 SQL Server 中的强大功能,它不仅可以用于实现分页,还能在复杂的查询中进行行的排序和分组,从而提供更灵活的数据处理能力。

    SQL中row-number函数用法

    ### SQL中row_number函数详解与应用 #### 一、row_number函数概述 `row_number()` 是SQL中的一个重要窗口函数,用于为每一行分配一个唯一且连续的整数。这一功能在处理复杂的数据排序和筛选场景时非常有用。下面将...

    SQL2005利用ROW_NUMBER() OVER实现分页功能

    总结来说,SQL Server 2005中的ROW_NUMBER() OVER函数是实现分页查询的强大工具,它允许我们在保持高效性能的同时,轻松地对数据进行分组和排序,进而实现灵活的分页功能。通过理解并熟练掌握这个函数,开发者可以更...

    Hive中分组取topN_row_number-rank和dense_rank的使用.pdf

    在这篇文档中,我们将详细学习在Hive中如何进行分组取topN,以及如何使用row_number()、rank()和dense_rank()三种窗口函数进行数据排序和排名。 首先,Hive中的数据表创建和数据插入操作是数据查询和分析的前提。...

    sqlserver巧用row_number和partition by分组取top数据

    SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单。下面是一个简单示例: 代码如下: –1.创建测试表 create table #score ( name varchar(20), subject ...

    Oracle开发之分析函数(Rank, Dense_rank, row_number)

    Oracle分析函数Rank、Dense_rank和row_number是用于处理数据集的高级工具,它们在数据库查询中发挥着关键作用,特别是在需要对数据进行排序和分组时。这三种函数都有各自的特点,适用于不同的业务场景。 1. **row_...

Global site tag (gtag.js) - Google Analytics