有些事情始终是需要坚持下去的。。。
今天复习一下之前用到的连续相同数据的统计。
首先,创建一个简单的测试表,这里过程就略过了,直接上表(真的是以简单为主,哈哈…)
第一种写法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);
结果:
三者在这里的用法只是换汤不换药,但是在其他的需求里还是有区别的,比如成绩排名。
本章涉及到的知识点是分析函数、聚合函数,除此之外还有数据分析函数和统计求和函数。
简单介绍一下:
聚合函数
分析函数
数据分析函数
统计求和函数
cube :按照olap的cube方式进行数据统计,即各个维度均需统计
下一篇文章介绍三者的区别,还有其他一些。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对移动技术网的支持。如果你想了解更多相关内容请查看下面相关链接
如对本文有疑问, 点击进行留言回复!!
Navicate 如何导出数据库中的存储过程、事件、视图等?
每日一记:Oracle升级2020年4月份的数据库补丁Database Patch Set Update : 11.2.0.4.200414 (30670774)
Oracle 19.3 dataguard for Redhat 7.6
网友评论