博客
关于我
oracle下的OVER(PARTITION BY)函数介绍
阅读量:792 次
发布时间:2023-02-25

本文共 3168 字,大约阅读时间需要 10 分钟。

Oracle OVER??????

?Oracle?????OVER?????????????????????????????????????Partition By??????????Order By????????????????OVER???????????????????????????????


1. OVER???????

OVER??????????

SELECT column_name,        sum(column_name) OVER(partition_by_clause order_by_clause) FROM table_name;

??

SELECT name, class, s,        sum(s) OVER(partition_by class order_by s desc) mm FROM t2WHERE mm = 1;

??

name class s mm
dss 1 95 190
ffd 1 95 190
gds 2 92 92
cfe 2 74 166
gf 3 99 198
ddd 3 99 198
3dd 3 78 276
asdf 3 55 331
asdf 3 45 376

2. Partition By?Order By???

OVER???????Partition By?Order By????Partition By???????????????Order By????????????????

??1?Partition By deptno Order By salary

SELECT deptno, ename, sal,        rank() OVER(partition_by deptno order_by sal) r,       (SELECT COUNT(1) n FROM emp GROUP BY deptno) bFROM empWHERE deptno IN (30, 60);

??2?Partition By class Order By s desc

SELECT class, s,        rank() OVER(partition_by class order_by s desc) mm FROM t2WHERE mm = 1;

3. Range?Rows???

OVER????Range?Rows???????????Range?????????Rows????N??

???Range between 5 preceding and 5 following

SELECT name, class, s,        sum(s) OVER(order_by s range between 5 preceding and 5 following) mm FROM t2WHERE mm = 1;

???Rows between 2 preceding and 2 following

SELECT name, class, s,        sum(s) OVER(order_by s rows between 2 preceding and 2 following) mm FROM t2WHERE mm = 1;

4. Unbounded Preceding and Following

?Range?Rows???unbounded????????????????

???Unbounded preceding and following

SELECT opr_id, res_type,        first_value(res_type) OVER(partition_by opr_id order_by res_type) low,       last_value(res_type) OVER(partition_by opr_id order_by res_type rows BETWEEN unbounded preceding AND unbounded following) highFROM rm_circuit_routeWHERE opr_id IN ('000100190000000000021311', '000100190000000000021355', '000100190000000000021339')ORDER BY opr_id;

5. rank()?dense_rank()?percent_rank()

rank()

rank()????????????????????????

dense_rank()

dense_rank()???rank()????????????????

percent_rank()

percent_rank()????????????????????

???percent_rank

SELECT deptno, ename, sal,        (a.r-1)/(n-1) pr1,       percent_rank() OVER(partition_by deptno order_by sal) pr2FROM (    SELECT deptno, ename, sal,            rank() OVER(partition_by deptno order_by sal) r    FROM emp    WHERE deptno IN (30, 60)) a,(SELECT deptno, COUNT(1) n FROM emp GROUP BY deptno) bWHERE a.deptno = b.deptno;

6. cume_dist()?percentile_cont()

cume_dist()

cume_dist()?????????????CDF???????????????????

percentile_cont()

percentile_cont()??????????????????

???percentile_cont(0.7)

SELECT ename, sal, deptno,        percentile_cont(0.7) within group(order_by sal) over(partition_by deptno) "Percentile_Cont",       percent_rank() OVER(partition_by deptno order_by sal) "Percent_Rank"FROM empWHERE deptno IN (30, 60);

7. PERCENTILE_DISC()

PERCENTILE_DISC()????????????????

???

SELECT ename, sal, deptno,        percentile_disc(0.7) within group(order_by sal) over(partition_by deptno) "Percentile_Disc",       cume_dist() over(partition_by deptno order_by sal) "Cume_Dist"FROM empWHERE deptno IN (30, 60);

???????????Oracle?OVER??????????????????????????????????????????????????

转载地址:http://qopfk.baihongyu.com/

你可能感兴趣的文章
OpenCV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
opencv图像分割2-GMM
查看>>
opencv图像分割3-分水岭方法
查看>>
opencv图像切割1-KMeans方法
查看>>
OpenCV图像处理篇之阈值操作函数
查看>>
OpenCV图像的深浅拷贝
查看>>
OpenCV学习(13) 细化算法(1)(转)
查看>>
OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
查看>>
OpenCV学堂 | OpenCV案例 | 基于轮廓分析对象提取
查看>>
OpenCV学堂 | YOLOv8实战 | 荧光显微镜细胞图像检测
查看>>
OpenCV官方文档 理解k - means聚类
查看>>
OpenCV探索
查看>>
OpenCV环境搭建(一)
查看>>
openCV目标识别 目标跟踪 YOLO5深度学习 Python 计算机视觉 计算机毕业设计 源码下载
查看>>
opencv笔记(1):图像缩放
查看>>
opencv笔记(二十四)——得到轮廓之后找到凸包convex hull
查看>>
OpenCV计算点到直线的距离 数学法
查看>>
Opencv识别图中人脸
查看>>
OpenCV读写avi、mpeg文件
查看>>
opencv面向对象设计初探
查看>>