`
xiaoboss
  • 浏览: 650875 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle分组取第一条数据

阅读更多

对多数据进行分组排序后取每组第一条记录

SELECT *
  FROM (SELECT ROW_NUMBER() OVER(PARTITION BY <PK_FINANCE_ACCOUNT_1> ORDER BY <amassdate> DESC) LEV,
               <hx_amass_liquid>.*
          FROM <hx_amass_liquid>)
 WHERE LEV = 1
 ORDER BY <PK_FINANCE_ACCOUNT_2> DESC

<PK_FINANCE_ACCOUNT_1> -- 分组列 

 

<amassdate> -- 排序列

 

<hx_amass_liquid> -- 表名

 

<PK_FINANCE_ACCOUNT_2> -- 排序列

 

:<hx_amass_liquid>.* -- 一定要有表名,否则会报“缺失表达式”错误

 

==========================================================

 

分组时不仅想取每组的第一条记录,还想取每组共有几条记录

SELECT *
FROM (

 

SELECT ROW_NUMBER() OVER(PARTITION BY PK_FINANCE_ACCOUNT ORDER BY amassdate DESC) LEV,
            

             count(0) over(partition by PK_FINANCE_ACCOUNT) cnt,

             

             hx_amass_liquid.*
 FROM

 

 hx_amass_liquid

 

)


 WHERE LEV = 1
 ORDER BY PK_FINANCE_ACCOUNT DESC

分享到:
评论

相关推荐

    mysql使用GROUP BY分组实现取前N条记录的方法

    本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...

    Oracle左连接返回多条记录中一条记录的查询语句

    Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录

    Oracle实现对查询结果每N条再次分组博客所用数据库

    标题中的“Oracle实现对查询结果每N条再次分组”是指在Oracle数据库中进行数据处理时,使用SQL语句对查询结果进行分组,而这里的“每N条再次分组”通常指的是使用GROUP BY子句配合ROW_NUMBER()、PARTITION BY等函数...

    Oracle中分组后拼接分组字符串[文].pdf

    第一部分是最内层的 SQL,用于按 `NO` 和 `VALUE` 排序,并列出行号: ```sql select a.No, a.Value, a.Name, row_number() over(order by a.No, a.Value desc) rnFirst from Test a; ``` 这部分的结果如下: | ...

    SQL之分组统计和子查询专题

    * 分组之中的不成文规定之一:当数据重复的时候分组才有意义,因为一个人也可以一组(但无没有什么意义),如果想分组,则需要用GROUP BY不管是单字段分组还是多字段分组,一定要有一个前提,即存在了重复数据。...

    Oracle学习教程&进阶

    1. **查询**:在Oracle中,SQL(结构化查询语言)是进行数据查询和操作的主要工具。这部分将涵盖基本的SELECT语句,如选择、投影、联接、分组和排序,以及更高级的子查询、集合操作和窗口函数。了解如何编写高效的...

    ORACLE去除重复数据方法

    - `SELECT * FROM cte WHERE rn = 1`:这一行代码用于选择每个分组中的第一条记录,即行号为1的记录。 #### 总结 本文介绍了两种在Oracle数据库中去除重复数据的方法:一是通过子查询实现,二是利用窗口函数`ROW_...

    oracle数据仓库分析函数汇总

    - `FIRST_VALUE()`: 获取窗口内的第一个值。 - `LAST_VALUE()`: 获取窗口内的最后一个值。 4. **百分比函数**: - `PERCENT_RANK()`: 计算相对于所有行的排名百分比。 - `CUME_DIST()`: 计算累积分布,表示当前...

    Oracle实用教程(第五版)(Oracle11g版)

    第一范式(1NF)、第二范式(2NF)和第三范式(3NF)是通常遵循的范式,确保数据结构合理。 最后,了解Oracle数据库的备份与恢复策略是保障数据安全的关键。Oracle提供多种备份选项,如逻辑备份(导出/导入)、物理...

    Oracle数据挖掘

    1. 数据预处理:数据挖掘的第一步通常是数据清洗和预处理,包括去除重复值、处理缺失值、异常值检测和转换数据格式。Oracle提供了SQL和PL/SQL语言以及一系列内置函数来支持这些操作,确保挖掘的数据质量。 2. 特征...

    删除重复数据的一种高效的方法(oracle)

    这种方法使用了窗口函数`row_number()`,通过对每个object_id分组并按ROWID排序,删除除第一条记录外的所有记录。SQL语句如下: ```sql DELETE FROM demo WHERE rowid IN (SELECT rid FROM (SELECT rowid rid, row_...

    oracle数据库各种删除重复数据方法

    HAVING COUNT(*) &gt; 1)**: 这个子查询同样是对记录按ID分组,但它只选择每个ID组中的最小ROWID,即每组的第一条记录。通过这种方式,可以确保每组中至少保留一条记录。 3. **主查询**: 主查询使用上述两个子查询的...

    精通OracleSQL第2版.zip

    《精通Oracle SQL(第2版)》是一本深入解析Oracle数据库查询语言的专业书籍,由Oracle ACE和OakTable团队的专家共同撰写,集成了他们的丰富经验和专业知识。这本书旨在帮助读者掌握Oracle SQL的高级技巧,提升在...

    oracle 取某个时间段的数据(每周几的上午几点到几点)

    2. **第二种方式**:先对数据按`INVALID_TIME`降序排列,然后用`rownum = 1`获取第一条记录。 3. **第三种方式**:使用子查询获取最大`INVALID_TIME`,再与主查询相结合,限制`rownum = 1`以获取最新记录。 这些...

    信永国际 中文超详细Oracle教程

    第一章 数据库基础 第二章 Oracle入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle数据类型 第十一章 Oracle体系...

    Oracle数据库Sql语句详解大全

    第一章 SELECT查询 写一条SELECT查询语句 在查询中使用表达式、运算符 对空值的处理 对查询字段起别名 查询字段的连接 第二章 条件查询 WHERE条件查询 在查询中使用表达式、运算符 使用LIKE、BETWEEN、IN进行模糊...

    查询oracle数据库数据的一款简单工具

    首先,连接数据库是使用Golden32的第一步。用户需要输入数据库的相关连接信息,包括数据库服务器的主机名或IP地址、监听端口、数据库服务名(SID)或全局数据库名(GDN)、用户名和密码。对于本机数据库,这些信息...

    《精通Oracle SQL 第2版》PDF版本下载.txt

    根据提供的文件信息,我们可以推断出这是一本关于Oracle SQL的专业书籍——《精通Oracle SQL 第2版》。接下来,我们将围绕这一主题展开深入探讨,包括Oracle SQL的基本概念、本书的主要内容以及学习Oracle SQL的一些...

    oracle培训笔记2

    - ORACLE第一天.txt可能涉及Oracle简介、安装配置、SQL基本概念等。 - ORACLE第六天.txt可能涵盖更高级的SQL查询技巧,如子查询、连接查询、集合操作等。 - ORACLE第九天.txt可能讨论到数据库安全性,如用户权限、...

Global site tag (gtag.js) - Google Analytics