Oracle连续相同数据的统计


本文整理自网络,侵删。

有些事情始终是需要坚持下去的。。。

今天复习一下之前用到的连续相同数据的统计。

首先,创建一个简单的测试表,这里过程就略过了,直接上表(真的是以简单为主,哈哈…)

第一种写法row_number():

SELECT val,COUNT(*) FROM
(SELECT ID,val,
row_number() OVER(ORDER BY ID)-row_number() OVER(PARTITION BY val ORDER BY ID) x
FROM LCY ) GROUP BY val,x ORDER BY MIN(ID);

第二种rank()

 SELECT val,COUNT(*) FROM
(SELECT ID,val,
rank() OVER(ORDER BY ID)-rank() OVER(PARTITION BY val ORDER BY ID) x
FROM LCY) GROUP BY val,x ORDER BY MIN(ID);

第三种dense_rank()

SELECT val,COUNT(*) FROM
(SELECT ID,val,
dense_rank() OVER(ORDER BY ID)-dense_rank() OVER(PARTITION BY val ORDER BY ID) x
FROM LCY )GROUP BY val,x ORDER BY MIN(ID);

结果:

三者在这里的用法只是换汤不换药,但是在其他的需求里还是有区别的,比如成绩排名。

本章涉及到的知识点是分析函数、聚合函数,除此之外还有数据分析函数和统计求和函数。

简单介绍一下:

阅读剩余部分

相关阅读 >>

mysql和oracle的区别小结(功能性能、选择、使用它们时的sql等对比)

oracle 存储过程教程

关于mysql与oracle的一些区别介绍

oracle数据库rownum和row_number的不同点

oracle set和reset的使用教程案例

oracle数据加载和卸载的实现方法

oracle学习笔记(五)

db2和 oracle的并发控制(锁)的比较

oracle收购timesten 提高数据库软件性能

分解oracle存储过程或函数调试过程步骤

更多相关阅读请进入《oracle》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...