您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“SQL怎么查詢至少連續(xù)七天下單的用戶”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
create table orde(id varchar(10),date datetime,orders varchar(10)); insert into orde values('1' , '2019/1/1',10 ) insert into orde values('1' , '2019/1/2',109 ) insert into orde values('1' , '2019/1/3',150 ) insert into orde values('1' , '2019/1/4',99) insert into orde values('1' , '2019/1/5',145) insert into orde values('1' , '2019/1/6',1455) insert into orde values('1' , '2019/1/7',199) insert into orde values('1' , '2019/1/8',188 ) insert into orde values('4' , '2019/1/1',10 ) insert into orde values('2' , '2019/1/2',109 ) insert into orde values('3' , '2019/1/3',150 ) insert into orde values('4' , '2019/1/4',99) insert into orde values('5' , '2019/1/5',145) insert into orde values('6' , '2019/1/6',1455) insert into orde values('7' , '2019/1/7',199) insert into orde values('8' , '2019/1/8',188 ) insert into orde values('9' , '2019/1/1',10 ) insert into orde values('9' , '2019/1/2',109 ) insert into orde values('9' , '2019/1/3',150 ) insert into orde values('9' , '2019/1/4',99) insert into orde values('9' , '2019/1/6',145) insert into orde values('9' , '2019/1/9',1455) insert into orde values('9' , '2019/1/10',199) insert into orde values('9' , '2019/1/13',188 )
將表按照id分組根據(jù)時間排名,時間減去排名rnk,如果時間是連續(xù)的則相減的結(jié)果相等:
select *,date-排名 rnk from (select *,row_number() over(partition by id order by date) 排名 from orde) a;
然后按照id,rnk分組,計數(shù)
select id,rnk,count(*) ok from (select *,date-排名 rnk from (select *,row_number() over(partition by id order by date) 排名 from orde) a) b group by id,rnk;
得到下表:
最后篩選計數(shù)項ok>=7的。
還可以直接進行篩選:
select id,rnk from (select *,date-排名 rnk from (select *,row_number() over(partition by id order by date) 排名 from orde) a) b group by id,rnk having count(*)>=7;
“SQL怎么查詢至少連續(xù)七天下單的用戶”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。