SQL?查詢(xún)連續(xù)登錄的用戶(hù)情況
以連續(xù)3天為例,使用工具:MySQL。
1.創(chuàng)建SQL表:
create table if not exists 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 );
查看數(shù)據(jù)表:

2.使用row_number() over()? 排序函數(shù)計(jì)算每個(gè)id的排名,SQL如下:
select *,row_number() over(partition by id order by date ) 'rank' from orde where orders is not NULL;
查看數(shù)據(jù)表:

?3.將date日期字段減去rank排名字段,SQL如下:
select *,DATE_SUB(a.date,interval a.rank day) 'date_sub' from( select *,row_number() over(partition by id order by date ) 'rank' from orde where orders is not NULL ) a;
查看數(shù)據(jù):
?
4.根據(jù)id和date分組并計(jì)算分組后的數(shù)量(count)、計(jì)算最早登錄和最晚登錄的時(shí)間,SQL如下:
select b.id,min(date) 'start_time',max(date) 'end_time',count(*) 'date_count' from( select *,DATE_SUB(a.date,interval a.rank day) 'date_sub' from( select *,row_number() over(partition by id order by date ) 'rank' from orde where orders is not NULL ) a ) b group by b.date_sub,id having count(*) >= 3 ;
?查看數(shù)據(jù):

參考資料:?
SQL查詢(xún)連續(xù)七天以上下單的用戶(hù)
https://blog.csdn.net/qq_43807789/article/details/99091753?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~default-1.highlightwordscore&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~default-1.highlightwordscore
到此這篇關(guān)于SQL 查詢(xún)連續(xù)n天登錄的用戶(hù)情況的文章就介紹到這了,更多相關(guān)SQL 查詢(xún)用戶(hù)連續(xù)登錄情況內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Microsoft SQL Server數(shù)據(jù)庫(kù)各版本下載地址集合
這篇文章主要介紹了Microsoft SQL Server數(shù)據(jù)庫(kù)各版本下載地址集合,需要的朋友可以參考下2020-10-10
SQL Server配置管理器無(wú)法連接到WMI提供程序
這篇文章主要介紹了SQL Server配置管理器無(wú)法連接到WMI提供程序,提示您沒(méi)有權(quán)限或者該服務(wù)器無(wú)法訪(fǎng)問(wèn),如何解決?2016-11-11
SQL Server誤區(qū)30日談 第26天 SQL Server中存在真正的“事
嵌套事務(wù)可不會(huì)像其語(yǔ)法表現(xiàn)的那樣看起來(lái)允許事務(wù)嵌套。我真不知道為什么有人會(huì)這樣寫(xiě)代碼,我唯一能夠想到的就是某個(gè)哥們對(duì)SQL Server社區(qū)嗤之以鼻然后寫(xiě)了這樣的代碼說(shuō):“玩玩你們”2013-01-01
SQLServer用存儲(chǔ)過(guò)程實(shí)現(xiàn)插入更新數(shù)據(jù)示例
這篇文章主要介紹了SQLServer如何用存儲(chǔ)過(guò)程實(shí)現(xiàn)插入更新數(shù)據(jù),需要的朋友可以參考下2014-08-08
親自教你使用?ChatGPT?編寫(xiě)?SQL?JOIN?查詢(xún)示例
這篇文章主要介紹了使用ChatGPT編寫(xiě)SQL?JOIN查詢(xún),作為一種語(yǔ)言模型,ChatGPT 可以就如何構(gòu)建復(fù)雜的 SQL 查詢(xún)和 JOIN 提供指導(dǎo)和建議,但它不能直接訪(fǎng)問(wèn) SQL 數(shù)據(jù)庫(kù),它可以幫助您了解語(yǔ)法、最佳實(shí)踐和有關(guān)如何構(gòu)建查詢(xún)以高效執(zhí)行的一般指導(dǎo),需要的朋友可以參考下2023-02-02
SQL Server 總結(jié)復(fù)習(xí) (二)
SQL Server 總結(jié)復(fù)習(xí),學(xué)習(xí)sqlserver的朋友可以參考下2012-08-08
PLSQL連接oracle數(shù)據(jù)庫(kù)過(guò)程圖解
這篇文章主要介紹了PLSQL連接oracle數(shù)據(jù)庫(kù)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2008-02-02
SQL Server數(shù)據(jù)庫(kù)之備份和恢復(fù)數(shù)據(jù)庫(kù)
在一些對(duì)數(shù)據(jù)可靠性要求很高的行業(yè),若發(fā)生意外停機(jī)或數(shù)據(jù)丟失,其損失是十分慘重的,因此,本文詳細(xì)介紹了數(shù)據(jù)庫(kù)備份和恢復(fù)數(shù)據(jù)庫(kù)方法,感興趣的同學(xué)可以借鑒一下2023-03-03

