Oracle开发之分析函数总结
这一篇是对前面所有关于分析函数的文章的总结:
一、统计方面:
Sum() Over ([Partition by ] [Order by ])
Sum() Over ([Partition by ] [Order by ]
Rows Between Preceding And Following)
Sum() Over ([Partition by ] [Order by ]
Rows Between Preceding And Current Row)
Sum() Over ([Partition by ] [Order by ]
Range Between Interval '' 'Day' Preceding
And Interval '' 'Day' Following )
具体请参考《Oracle开发之分析函数简介Over用法》和《Oracle开发之窗口函数》
二、排列方面:
Rank() Over ([Partition by ] [Order by ] [Nulls First/Last])
Dense_rank() Over ([Patition by ] [Order by ] [Nulls First/Last])
Row_number() Over ([Partitionby ] [Order by ] [Nulls First/Last])
Ntile() Over ([Partition by ] [Order by ])
具体请参考《Oracle开发之分析函数(Rank, Dense_rank, row_number)》
三、最大值/最小值查找方面:
Min()/Max() Keep (Dense_rank First/Last [Partition by ] [Order by ])
具体请参考《Oracle开发之分析函数(Top/Bottom N、First/Last、NTile)》
四、首记录/末记录查找方面:
First_value / Last_value(Sum() Over ([Patition by ] [Order by ]
Rows Between Preceding And Following ))
具体请参考《Oracle开发之窗口函数》
五、相邻记录之间比较方面:
Lag(Sum(), 1) Over([Patition by ] [Order by ])
具体请参考《Oracle开发之报表函数》
以上就是Oracle分析函数总结的全部内容,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Oracle开发之分析函数(Rank, Dense_rank, row_number)
一.使用rownum为记录排名: 在前面一篇<Oracle开发之分析函数简介Over>,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题: ①对所有客户按订单总额进行排名 ②按区域和客户订单总额进行排名 ③找出订单总额排名前13位的客户 ④找出订单总额最高.最低的客户 ⑤找出订单总额排名前25%的客户 按照前面第一篇文章的思路,我们只能做到对各个分组的数据进行统计,如果需要排名的话那么只需要简单地加上rownum不就行了吗?事实情况是否如此想象般简单,我们来实践一下. [1]测试环境
-
Oracle开发之分析函数(Top/Bottom N、First/Last、NTile)
一.带空值的排列: 在前面<Oracle开发之分析函数(Rank.Dense_rank.row_number)>一文中,我们已经知道了如何为一批记录进行全排列.分组排列.假如被排列的数据中含有空值呢? 复制代码 代码如下: SQL> select region_id, customer_id, sum(customer_sales) cust_sales, sum(sum(customer_sales)) over(partition by regio
-
Oracle开发之分析函数简介Over用法
一.Oracle分析函数简介: 在日常的生产环境中,我们接触得比较多的是OLTP系统(即Online Transaction Process),这些系统的特点是具备实时要求,或者至少说对响应的时间多长有一定的要求:其次这些系统的业务逻辑一般比较复杂,可能需要经过多次的运算.比如我们经常接触到的电子商城. 在这些系统之外,还有一种称之为OLAP的系统(即Online Aanalyse Process),这些系统一般用于系统决策使用.通常和数据仓库.数据分析.数据挖掘等概念联系在一起.这些系统的特点
-
Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法
ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序 而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的) RANK() 类似,不过RANK 排序的时候跟派名次一样,可以并列2个第一名之后 是第3名 LAG 表示 分组排序后 ,组内后面一条记录减前面一条记录的差,第一条可返回 NULL BTW: EXPERT ONE ON ONE 上讲的最详细,还有很多相关特性,文档看起来比较费劲 row
-
常用Oracle分析函数大全
Oracle的分析函数功能非常强大,工作这些年来经常用到.这次将平时经常使用到的分析函数整理出来,以备日后查看. 我们拿案例来学习,这样理解起来更容易一些. 1.建表 create table earnings -- 打工赚钱表 ( earnmonth varchar2(6), -- 打工月份 area varchar2(20), -- 打工地区 sno varchar2(10), -- 打工者编号 sname varchar2(20), -- 打工者姓名 times int, -- 本月打工次
-
深入探讨:oracle中row_number() over()分析函数用法
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的). 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码. row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开始排序). rank()是跳跃排序,有两个第二名
-
Oracle开发之分析函数总结
这一篇是对前面所有关于分析函数的文章的总结: 一.统计方面: 复制代码 代码如下: Sum() Over ([Partition by ] [Order by ]) Sum() Over ([Partition by ] [Order by ] Rows Between Preceding And Following) Sum() Over ([Partition by ] [Order by ] Rows Between Preceding An
-
Oracle开发之窗口函数
一.窗口函数简介: 到目前为止,我们所学习的分析函数在计算/统计一段时间内的数据时特别有用,但是假如计算/统计需要随着遍历记录集的每一条记录而进行呢?举些例子来说: ①列出每月的订单总额以及全年的订单总额 ②列出每月的订单总额以及截至到当前月的订单总额 ③列出上个月.当月.下一月的订单总额以及全年的订单总额 ④列出每天的营业额及一周来的总营业额 ⑤列出每天的营业额及一周来每天的平均营业额 仔细回顾一下前面我们介绍到的分析函数,我们会发现这些需求和前面有一些不同:前面我们介绍的分析函数用于计算/统
-
Oracle开发之报表函数
一.回顾一下前面<Oracle开发之窗口函数>中关于全统计一节,我们使用了Oracle提供的: 复制代码 代码如下: sum(sum(tot_sales)) over (order by month rows between unbounded preceding and unbounded following) 来统计全年的订单总额,这个函数会在记录集形成的过程中,每检索一条记录就执行一次,它总共执行了12次.这是非常费时的.实际上我们还有更简便的方法: 复制代码 代码如下: SQL>
-
使用Docker快速搭建Oracle开发环境的方法教程
前言 oracle太大了,对于开发人员来说,在本机安装一个oracle代价不菲. 在docker环境中,我找了很久,发现wnameless/oracle-xe-11g 镜像还不错,很方便搭建起来. 但是也发现一个问题,挂载本地卷遇到了麻烦.一旦挂载,就无法登陆了.从官方的issues中发现,有一个fork版本解决了这个问题,记录一下. 创建docker-compose工作目录 mkdir -p oracle/data cd oracle touch docker-compose.yml 配置do
-
Oracle中的分析函数汇总
一.概述 OLAP的系统(即Online Aanalyse Process)一般用于系统决策使用.通常和数据仓库.数据分析.数据挖掘等概念联系在一起.这些系统的特点是数据量大,对实时响应的要求不高或者根本不关注这方面的要求,以查询.统计操作为主. 我们来看看下面的几个典型例子: ①查找上一年度各个销售区域排名前10的员工 ②按区域查找上一年度订单总额占区域订单总额20%以上的客户 ③查找上一年度销售最差的部门所在的区域 ④查找上一年度销售最好和最差的产品 我们看看上面的几个例子就可以感觉到这几个
-
Oracle平台应用数据库系统的设计与开发
正在看的ORACLE教程是:Oracle平台应用数据库系统的设计与开发.Oracle是目前应用最广泛的数据库系统.一个完整的数据库系统包括系统硬件.操作系统.网络层.DBMS(数据库管理系统).应用程序与数据,各部分之间是互相依赖的,对每个部分都必须进行合理的配置.设计和优化才能实现高性能的数据库系统.本文讨论笔者使用Oracle开发局域网中.小型数据库应用中,系统硬件的选择与使用.应用数据库系统设计与开发方面的一些心得和建议.应用数据库系统包含应用数据库和应用两方面的内容,应用数据库就是生产数
-
ORACLE常见错误代码的分析与解决(三)
正在看的ORACLE教程是:ORACLE常见错误代码的分析与解决(三). ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用.ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取
随机推荐
- Terry七月Ruby读书笔记(比较详细)第1/4页
- 保存的js无法执行的解决办法 原创
- ios使用OC写算法之递归实现八皇后
- python判断字符串编码的简单实现方法(使用chardet)
- javascript仿163网盘无刷新文件上传系统
- java必学必会之static关键字
- ASP.NET 多次提交的解决办法
- 分享自定义的几个PHP功能函数
- 基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
- 关于java 图形验证码的解决方法
- 关于Intype一些小问题的解决办法
- Python的Bottle框架中返回静态文件和JSON对象的方法
- jquery如何获取元素的滚动条高度等实现代码
- java ant包中的org.apache.tools.zip实现压缩和解压缩实例详解
- javascript中offset、client、scroll的属性总结
- 清除SQLServer日志的两种方法
- mssql 两表合并sql语句
- Javascript检查图片大小不要让大图片撑破页面
- 优化RequireJS项目的相关技巧总结
- IIS ADMIN不能启动,提示错误代码-2146893818的解决方法