• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > oracle中分组排序并取最大值

oracle中分组排序并取最大值

作者:阿_洁的博客 字体:[增加 减小] 来源:互联网 时间:2017-09-08

阿_洁的博客通过本文主要向大家介绍了oracle 取最大值,oracle查询最大值,oracle 最大值,oracle表空间最大值,oracle取最大值的记录等相关知识,希望本文的分享对您有所帮助

最近工作中需要联合查询几个表中的数据,并且需要分组查询并取得每个组中的最大值,使用到了一个之前没有用过的oracle函数,分组排序函数。

分组排序函数可以满足以下需求:

1、要求取出按field1分组后,并在每组中按照field2排序;
2、亦或更加要求取出1中已经分组排序好的前多少行的数据

分组排序函数的用法:
1.row_number() over()
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。
与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码。row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开始排序)。
2.rank() over()
rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)

3.dense_rank() over()
dense_rank()也是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的。

 

我用到的是第一个row_number() over()函数,要使用这个函数分组排序后获取最大值的oracle语句:

select a,b from(select a,b,row_number()over(partition by a order by b desc)rownumber from tablename ) where rownumber =1

 

欢迎各位程序yuan批评指正~
 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • oracle中分组排序并取最大值

相关文章

  • 2017-05-11Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁
  • 2017-05-11oracle创建表的方法和一些常用命令
  • 2017-05-11Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例
  • 2017-05-11oracle 常见等待事件及处理方法
  • 2017-05-11oracle适配器连接不上的解决办法
  • 2017-05-11oracle下巧用bulk collect实现cursor批量fetch的sql语句
  • 2017-05-11详解Oracle自定义异常示例
  • 2017-05-11详解Oracle中的隐含参数_disable_logging
  • 2017-05-11oracle sql 去重复记录不用distinct如何实现
  • 2017-05-11Oracle数据库安全策略分析(一)第1/2页

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • oracle使用instr或like方法判断是否包含字符串
    • group by,having,order by的用法详解
    • oracle 下WITH CHECK OPTION用法
    • Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作
    • Window下Oracle安装图文教程
    • Oracle自动备份及自动备份步骤
    • Linux下的Oracle启动脚本及其开机自启动
    • 利用Oracle数据库发送邮件的实例代码
    • oracle 存储过程和触发器复制数据
    • 解决Hibernate JPA中insert插入数据后自动执行select last_insert_id()

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有