oracle 判断数字是否连续,oracle数据库连续相同数据的统计方法

本文介绍了在Oracle中判断和统计连续相同数据的三种方法,包括使用row_number()、rank()和dense_rank()。文章详细讲解了这些分析函数的用法,并提及了聚合函数、数据分析函数等概念,如SUM、MIN、MAX、AVG、COUNT,以及RANK、DENSE_RANK、LAG和LEAD等。最后,文章预告了后续会介绍这些函数的区别和其他分析函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天小编就为大家分享一篇关于Oracle连续相同数据的统计,内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧。

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

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

811c2d33054e1199467067ebe2e4e3d6.png

第一种写法row_number():

SELECT val,COUNT(*)FROM

(SELECT ID,val,

row_number() OVER(ORDER BY ID)-row_number() OVER(PARTITIONBY valORDER BY ID) x

FROM LCY )GROUP BY val,xORDER BY MIN(ID);

第二种rank():

SELECT val,COUNT(*)FROM

(SELECT ID,val,

rank() OVER(ORDER BY ID)-rank() OVER(PARTITIONBY valORDER BY ID) x

FROM LCY)GROUP BY val,xORDER BY MIN(ID);

第三种dense_rank():

SELECT val,COUNT(*)FROM

(SELECT ID,val,

dense_rank() OVER(ORDER BY ID)-dense_rank() OVER(PARTITIONBY valORDER BY ID) x

FROM LCY )GROUP BY val,xORDER BY MIN(ID);

结果:

347095cf0580c02f59e8899301377eed.png

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

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

简单介绍一下:

聚合函数

SUM :该函数计算组中表达式的累积和

MIN :在一个组中的数据窗口中查找表达式的最小值

MAX :在一个组中的数据窗口中查找表达式的最大值

AVG :用于计算一个组和数据窗口内表达式的平均值。

COUNT :对一组内发生的事情进行累积计数

分析函数

RANK :根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置

DENSE_RANK :根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置

FIRST :从DENSE_RANK返回的集合中取出排在最前面的一个值的行

LAST :从DENSE_RANK返回的集合中取出排在最后面的一个值的行

FIRST_VALUE :返回组中数据窗口的第一个值

LAST_VALUE :返回组中数据窗口的最后一个值。

LAG :可以访问结果集中的其它行而不用进行自连接

LEAD :LEAD与LAG相反,LEAD可以访问组中当前行之后的行

ROW_NUMBER:返回有序组中一行的偏移量,从而可用于按特定标准排序的行号

数据分析函数

STDDEV :计算当前行关于组的标准偏离

STDDEV_POP:该函数计算总体标准偏离,并返回总体变量的平方根

STDDEV_SAMP:该函数计算累积样本标准偏离,并返回总体变量的平方根

VAR_POP :该函数返回非空集合的总体变量(忽略null)

VAR_SAMP :该函数返回非空集合的样本变量(忽略null)

VARIANCE :如果表达式中行数为1,则返回0,如果表达式中行数大于1,则返回VAR_SAMP

COVAR_POP :返回一对表达式的总体协方差

COVAR_SAMP:返回一对表达式的样本协方差

CORR :返回一对表达式的相关系数

CUME_DIST :计算一行在组中的相对位置

NTILE :将一个组分为"表达式"的散列表示

PERCENT_RANK:和CUME_DIST(累积分配)函数类似

PERCENTILE_DISC:返回一个与输入的分布百分比值相对应的数据值

PERCENTILE_CONT:返回一个与输入的分布百分比值相对应的数据值

RATIO_TO_REPORT:该函数计算expression/(sum(expression))的值,它给出相对于总数的百分比

REGR_ (Linear Regression) Functions:这些线性回归函数适合最小二乘法回归线,有9个不同的回归函数可使用

统计求和函数

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

下一篇文章介绍三者的区别,还有其他一些常用的分析函数和聚合函数。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值