今天是元宵节,在此祝大家元宵快乐,梦想还在路上,让我们继续加油!

今天小编就为大家分享一篇关于Oracle连续相同数据的统计,先来复习一下之前用到的连续相同数据的统计。

首先,创建一个简单的测试表,这里过程就略过了。

oracle同时统计多个表的数量(如何对Oracle连续相同数据做统计分析)(1)

第一种写法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);

结果:

oracle同时统计多个表的数量(如何对Oracle连续相同数据做统计分析)(2)

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

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


聚合函数
分析函数
数据分析函数
统计求和函数

CUBE :按照OLAP的CUBE方式进行数据统计,即各个维度均需统计


后面小编会分享更多运维方面的干货,感兴趣的朋友走一波关注哩~

oracle同时统计多个表的数量(如何对Oracle连续相同数据做统计分析)(3)

,