首页 > 其他 > 详细

求连续出现5次以上的值,并且取第5次所在id

时间:2019-02-25 11:38:27      阅读:124      评论:0      收藏:0      [点我收藏+]

关键字:求连续出现5次以上的值,并且取第5次所在id

关键字:求连续出现N次的

需求,求连续出现5次以上的值,并且取第5次所在id

技术分享图片

 

SQL SERVER:

--测试数据
CREATE TABLE temp1 (
    id INT PRIMARY KEY identity(1,1),
    num1 INT,
    num2 INT
);
insert into temp1 values( 11,51),( 12,52);
insert into temp1 values( 10,101),( 10,102),( 10,103),( 10,104),( 10,105),( 10,106),( 10,107);
insert into temp1 values( 13,53),( 14,54);
insert into temp1 values( 10,108),( 10,109),( 10,110);
insert into temp1 values( 15,55),( 16,56);
insert into temp1 values( 10,111),( 10,112),( 10,113),( 10,114),( 10,115),( 10,116),( 10,117);

--解决代码1)
    ;with t1 as (
    select *,id-row_number() over(partition by num1 order by id) x from temp1
)
select * from 
(
    select *,
    (
        count(1)  over(partition by x )
    ) as y,
    (
        row_number() over(partition by x order by id)
    ) as z
    from t1 a
) b
where  y>=5 and z=52)
;with t1 as (
    select *,id - row_number() over(partition by num1 order by id) x from temp1
)
select * from 
(
    select *,
    (
        select count(1) from t1 where x=a.x
    ) as y,
    (
        select count(1) from t1 where x=a.x AND id <=a.id        
    ) as z
    from t1 a
) b
where  y>=5 and z=5

 

求连续出现5次以上的值,并且取第5次所在id

原文:https://www.cnblogs.com/gered/p/10429961.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!