SQL查詢至少連續七天下單的使用者

2022-09-20 10:33:10 字數 1997 閱讀 7000

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 o程式設計客棧rde 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)

inse 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)gfwusp

insert into orde values('9' , '2019/1/10',199)

insert into orde values('9' , '2019/1/13',188 )

將表按照id分組根據時間排名,時間減去排名rnk,如果時間是連續的則相減的結果相等:

select *,date-排名 rnk from (select *,row_number() over(partition by id order by date) 排名 from orde) a;

然後按照id,rnk分組,計數

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;

得到下表:

最後篩選計數項ok>=7的。

還可以直接進行篩選:

select id,rnk from gfwusp

(select *,date-排名 rnk from (select *,row_number() over(partition by id order by date) 排名 from orde) a) b group by id,rnk h**ing count程式設計客棧(*)>=7;

本文標題: sql查詢至少連續七天下單的使用者

本文位址:

sql語句查詢最近七天 三十天 資料

幾個小時內的資料 date sub now interval 5 hour 今天 select from 表名 where to days 時間欄位名 to days now 昨天 select from 表名 where to days now to days 時間欄位名 1 7天 select ...

sql語句查詢最近七天 三十天 資料

幾個小時內的資料 date sub now interval 5 hour 今天select from 表名 where to days 時間欄位名 to days now 昨天select from 表名 where to days now to days 時間欄位名 1 7天select fro...

sql查詢今天,昨天,七天,三十天內的資料

今天有個需求需要從查詢當天所有的資料,就去網上搜了一下,並把其他幾個通過時間條件查詢也記錄下來 1.查詢今天所有的資料 select from customer loan where datediff dd,datetime型別字段,getdate 0 2.查詢昨天的所有資料 select from...