语法 FUNCTION_NAME(<参数>,…) OVER (<PARTITION BY 表达式,…> <ORDER BY 表达式 <ASC DESC> <NULLS FIRST NULLS LAST>> <WINDOWING子句>) PARTITION子句 ORDER BY子句 WINDOWING子句 缺省时相当于RANGE UNBOUNDED PRECEDING

1. 值域窗(RANGE WINDOW)

RANGE N PRECEDING 仅对数值或日期类型有效,选定窗为排序后当前行之前,某列(即排序列)值大于/小于(当前行该列值 –/+ N)的所有行,因此与ORDER BY子句有关系。

2. 行窗(ROW WINDOW)

ROWS N PRECEDING 选定窗为当前行及之前N行。

还可以加上BETWEEN AND 形式,例如RANGE BETWEEN m PRECEDING AND n FOLLOWING

函数 AVG(<distinct all> eXPr)

一组或选定窗中表达式的平均值 CORR(expr, expr) 即COVAR_POP(exp1,exp2) / (STDDEV_POP(expr1) * STDDEV_POP(expr2)),两个表达式的互相关,-1(反相关) ~ 1(正相关),0表示不相关

COUNT(<distinct> <*> <expr>) 计数

COVAR_POP(expr, expr) 总体协方差

COVAR_SAMP(expr, expr) 样本协方差

CUME_DIST 累积分布,即行在组中的相对位置,返回0 ~ 1

DENSE_RANK 行的相对排序(与ORDER BY搭配),相同的值具有一样的序数(NULL计为相同),并不留空序数

FIRST_VALUE 一个组的第一个值

LAG(expr, <offset>, <default>) 访问之前的行,OFFSET是缺省为1 的正数,表示相对行数,DEFAULT是当超出选定窗范围时的返回值(如第一行不存在之前行)

LAST_VALUE 一个组的最后一个值

LEAD(expr, <offset>, <default>) 访问之后的行,OFFSET是缺省为1 的正数,表示相对行数,DEFAULT是当超出选定窗范围时的返回值(如最后行不存在之前行)

MAX(expr) 最大值

MIN(expr) 最小值

NTILE(expr) 按表达式的值和行在组中的位置编号,如表达式为4,则组分4份,分别为1 ~ 4的值,而不能等分则多出的部分在值最小的那组

PERCENT_RANK 类似CUME_DIST,1/(行的序数 - 1)

RANK 相对序数,答应并列,并空出随后序号

RATIO_TO_REPORT(expr) 表达式值 / SUM(表达式值)

ROW_NUMBER 排序的组中行的偏移

STDDEV(expr) 标准差

STDDEV_POP(expr) 总体标准差

STDDEV_SAMP(expr) 样本标准差

SUM(expr) 合计

VAR_POP(expr) 总体方差

VAR_SAMP(expr) 样本方差

VARIANCE(expr) 方差

REGR_ xxxx(expr, expr) 线性回归函数

REGR_SLOPE:返回斜率,等于COVAR_POP(expr1, expr2) / VAR_POP(expr2)

REGR_INTERCEPT:返回回归线的y截距,等于

AVG(expr1) - REGR_SLOPE(expr1, expr2) * AVG(expr2)

REGR_COUNT:返回用于填充回归线的非空数字对的数目

REGR_R2:返回回归线的决定系数,计算式为:

If VAR_POP(expr2) = 0 then return NULL

If VAR_POP(expr1) = 0 and VAR_POP(expr2) != 0 then return 1

If VAR_POP(expr1) > 0 and VAR_POP(expr2 != 0 then

return POWER(CORR(expr1,expr),2)

REGR_AVGX:计算回归线的自变量(expr2)的平均值,去掉了空对(expr1, expr2)后,等于AVG(expr2)

REGR_AVGY:计算回归线的应变量(expr1)的平均值,去掉了空对(expr1, expr2)后,等于AVG(expr1)

REGR_SXX: 返回值等于REGR_COUNT(expr1, expr2) * VAR_POP(expr2)

REGR_SYY: 返回值等于REGR_COUNT(expr1, expr2) * VAR_POP(expr1)

REGR_SXY: 返回值等于REGR_COUNT(expr1, expr2) * COVAR_POP(expr1, expr2)

首先:创建表及接入测试数据

create table students

(id number(15,0),

area varchar2(10),

stu_type varchar2(2),

score number(20,2));

insert into students values(1, '111', 'g', 80 );

insert into students values(1, '111', 'j', 80 );

insert into students values(1, '222', 'g', 89 );

insert into students values(1, '222', 'g', 68 );

insert into students values(2, '111', 'g', 80 );

insert into students values(2, '111', 'j', 70 );

insert into students values(2, '222', 'g', 60 );

insert into students values(2, '222', 'j', 65 );

insert into students values(3, '111', 'g', 75 );

insert into students values(3, '111', 'j', 58 );

insert into students values(3, '222', 'g', 58 );

insert into students values(3, '222', 'j', 90 );

insert into students values(4, '111', 'g', 89 );

insert into students values(4, '111', 'j', 90 );

insert into students values(4, '222', 'g', 90 );

insert into students values(4, '222', 'j', 89 );

commit;

oralce分析函数如何工作的更多相关文章

  1. Oralce分析函数

    1 列传行  listagg(city,',')  within GROUP (order by city)    over (partition by nation) rank with temp ...

  2. Oracle分析函数(一)

    一.总体介绍 分析函数如何工作 语法 FUNCTION_NAME(<参数>,…) OVER (<PARTITION BY 表达式,…> <ORDER BY 表达式 < ...

  3. oracle 10g函数大全--分析函数

    oracle分析函数--SQL*PLUS环境 一.总体介绍 12.1 分析函数如何工作 语法 FUNCTION_NAME(<参数>,…) OVER (<PARTITION BY 表达 ...

  4. oracle分析函数 (转)

    一.总体介绍 12.1 分析函数如何工作 语法 FUNCTION_NAME(<参数>,…) OVER (<PARTITION BY 表达式,…> <ORDER BY 表达 ...

  5. Oracle 中的分析函数

    Oracle常用分析函数介绍(排名函数+窗口函数) 2014年11月30日 ⁄ 数据库 ⁄ 共 3903字 ⁄ 暂无评论 ⁄ 阅读 7,772 次 评级函数 常见评级函数如下: RANK():返回数据 ...

  6. oracle的分析函数over 及开窗函数

    转:http://www.2cto.com/database/201310/249722.html oracle的分析函数over 及开窗函数   一:分析函数over   Oracle从8.1.6开 ...

  7. Oracle中的sql操作符 和分析函数

    Oracle中的操作符算术操作符:无论是在sqlserver,或者是java中,每种语言它都有算术操作符,大同小异. Oracle中算术操作符(+)(-)(*)(/) 值得注意的是:/ 在oracle ...

  8. oracle分析函数

    在工作中使用到的分析函数主要有两种,一个是sum () over (partition by ……order by ……)另外一个就是 lead(lag)over (|partition by|ord ...

  9. 【转载】Oracle层次查询和分析函数

    摘要 一组连续的数,去掉中间一些数,如何求出剩下的数的区间(即号段)?知道号段的起止,如何求出该号段内所有的数?知道一个大的号段范围和已经取过的号段,如何求出可用的号段?利用Oracle提供的强大的查 ...

随机推荐

  1. 【python之路30】反射

    一.反射 1.反射的基本介绍: 反射是所有程序的专有名词,在java,C#语言中都存在反射,那么什么是反射呢? python中 的反射概括来说:是通过字符串的形式导入模块,并通过字符串的形式去模块中寻 ...

  2. TZ_13_微服务场景Eureka

    1.搭建Eureka的注册中心 1.1Eureka几个时间间隔配置详解 1 >客户端信息上报到eureka服务的时间周期,配置的值越小,上报越频繁,eureka服务器应用状态管理一致性越高 #客 ...

  3. css背景图自适应

    在开发时,修改了d2admin的登录页面.使用了背景图片,但是ui给的图过于大(可能是我电脑屏幕小哈)无法完整的显示到页面上,所以修改了代码,可以完整显示背景图. 代码如下:background: u ...

  4. CSS3实现3D地球自转行星公转

    截图效果:实际效果是动态的:地球自西向东自转,行星绕着地球公转,轨道也会转动 HTML页面代码: <!DOCTYPE html> <html lang="en"& ...

  5. java并发系列(八)-----java异步编程

    同步计算与异步计算 从多个任务的角度来看,任务是可以串行执行的,也可以是并发执行的.从单个任务的角度来看,任务的执行方式可以是同步的,也可以是异步的. Runnable.Callable.Future ...

  6. 【linux配置】Redhat6.5基础配置指南

    Redhat6.5基础配置指南 本文针对鄙人在工作中常用系统配置加以说明,通常公司用于生产和测试的服务器基本上都不能连接外网,需要针对刚刚安装好的系统做一系列的常用配置. 一.常用基础系统配置 1.关 ...

  7. SSM三大框架整合教程

    前言 SSM就是Spring+SpringMvc+Mybatis,本文搭建一个基本的ssm框架 本文所有源代码包含jar包下载点击:https://download.csdn.net/download ...

  8. mysql查询某个字段重复的数据

    查询某个字段重复的数据 ; 查询股票重复的营业厅 ;

  9. UE4物理模块(一)---概述与可视化调试

    UE4.21前的版本采用的是NVIDIA的PhysX做为其默认的物理引擎,用于计算3D世界的碰撞查询与物理模拟.自4.21版本开始改物理调用接口,但这并不是闲来重构代码,果然在2019GDC大会上放出 ...

  10. golang在import自己的包报错问题

    原因:使用git clone项目后,项目根路径是小写英文名称,比如cmdbapi,但是项目里面的import导入自己的相关包时,红色报错 解决:把项目名称改写成import导入包的名称,即cmdbAp ...