今天小编就为大家分享一篇关于Oracle连续相同数据的统计,内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧。
今天复习一下之前用到的连续相同数据的统计。
首先,创建一个简单的测试表,这里过程就略过了,直接上表(真的是以简单为主,哈哈…)
第一种写法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
FR