最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL查詢用戶連續(xù)N天登錄

 更新時間:2024年09月02日 11:18:38   作者:黑白交界  
業(yè)務中常見分析之一是分析用戶連續(xù)登錄使用情況,本文主要介紹了SQL查詢用戶連續(xù)N天登錄,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

業(yè)務中常見分析之一是分析用戶連續(xù)登錄使用情況,這也對應著SQL常見面試題——用戶連續(xù)N天登錄問題。

我們假設現(xiàn)在有一張用戶登錄信息表user_login_info,表中字段有用戶id(uid)、登錄時間(login_time)。表中數(shù)據(jù)如下所示:

現(xiàn)在要求查詢出連續(xù)登錄N天的用戶。

(1) 首先我們要對用戶登錄表進行去重操作,以避免用戶當天多次登錄情況對查詢結(jié)果產(chǎn)生影響。這里用到了distinct關鍵詞。

select
	uid, 
	distinct date(login_time) as login_time 
from user_login_info

(2)其次我們使用窗口排名函數(shù)row_number對同一用戶的不同登錄時間進行排名,得到新一列為rk。

select
    uid, 
	login_time, 
	row_number() over(partition by uid order by login_time) as rk
from
(
	select
	    uid, 
		distinct date(login_time) as login_time 
	from user_login_info
) t1

查詢結(jié)果如圖所示:

(3)之后用date_sub函數(shù)計算登錄時間login_time一列加上rk天之后生成新的一列sub_date。假如在表格中,同一用戶的sub_date相同則說明相同sub_date數(shù)據(jù)的行是連續(xù)登錄使用的情況。

select *, DATE_SUB(login_time, INTERVAL rk DAY) as sub_date
from
(
	select
		uid, 
		login_time, 
		row_number() over(partition by uid order by login_time) as rk
    from
    (
	    select
			uid, 
			distinct date(login_time) as login_time 
		from user_login_info
	) t1
) t2

查詢結(jié)果如圖所示:

(4)之后我們對得到的查詢結(jié)果,按照用戶id,登錄時間進行分組計數(shù),得到的計數(shù)結(jié)果就是用戶連續(xù)登錄多少天的情況記錄。

select uid, count(*) as 連續(xù)登錄天數(shù)
from
(
	SELECT *, DATE_SUB(login_time, INTERVAL rk DAY) AS sub_date
	from
	(
		select
			uid, 
			login_time, 
			row_number() over(partition by uid order by login_time) as rk
		from
		(
			select
				uid, 
				distinct date(login_time) as login_time 
			from user_login_info
		) t1
	) t2
) t3
group by uid, sub_date

(5)之后我們可以在此查詢結(jié)果上,根據(jù)需要用having條件就可以篩選出我們想要得知的連續(xù)N天登錄的用戶id

完整代碼如下:

select uid, count(*) as 連續(xù)登錄天數(shù)
from
(
	SELECT *, DATE_SUB(login_time, INTERVAL rk DAY) AS sub_date
	from
	(
		select
			uid, 
			login_time, 
			row_number() over(partition by uid order by login_time) as rk
		from
		(
			select
				uid, 
				distinct date(login_time) as login_time 
			from user_login_info
		) t1
	) t2
) t3
group by uid, sub_date
having 連續(xù)登錄天數(shù) = N

到此這篇關于SQL查詢用戶連續(xù)N天登錄的文章就介紹到這了,更多相關SQL查詢連續(xù)N天登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • sql server通過pivot對數(shù)據(jù)進行行列轉(zhuǎn)換的方法

    sql server通過pivot對數(shù)據(jù)進行行列轉(zhuǎn)換的方法

    這篇文章主要介紹了sql server通過pivot對數(shù)據(jù)進行行列轉(zhuǎn)換的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • MS SQL Server游標(CURSOR)的學習使用

    MS SQL Server游標(CURSOR)的學習使用

    使用MS SQL Server這樣久,游標一直沒有使用過。以前都是使用WHILE循環(huán)加臨時表來實現(xiàn)。剛剛聯(lián)系個示例了解到游標概念與語法
    2014-06-06
  • Microsoft Search 服務無法啟動 解決辦法.

    Microsoft Search 服務無法啟動 解決辦法.

    嘗試用正常系統(tǒng)的注冊表項添加到非正常系統(tǒng)中去。(因為對比的兩個系統(tǒng)版本、結(jié)構(gòu)相同,所此次就直接通過導入導出注冊表項進行批量修改)。
    2009-04-04
  • sql server刪除前1000行數(shù)據(jù)的方法實例

    sql server刪除前1000行數(shù)據(jù)的方法實例

    最近處理數(shù)據(jù)的時候遇到了個問題,需要利用sql刪除表格的前1000行數(shù)據(jù),嘗試過后這里給大家分享下過程,所以下面這篇文章主要給大家介紹了關于sql server刪除前1000行數(shù)據(jù)的相關資料,需要的朋友可以參考下
    2021-08-08
  • SQL中創(chuàng)建存儲過程

    SQL中創(chuàng)建存儲過程

    這篇文章主要介紹了SQL中創(chuàng)建存儲過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SqlServer 巧妙解決多條件組合查詢

    SqlServer 巧妙解決多條件組合查詢

    開發(fā)中經(jīng)常會遇得到需要多種條件組合查詢的情況,比如有三個表,年級表Grade(GradeId,GradeName),班級Class(ClassId,ClassName,GradeId),學員表Student(StuId,StuName,ClassId),現(xiàn)要求可以按年級Id、班級Id、學生名,這三個條件可以任意組合查詢學員信息
    2012-11-11
  • 基于SSIS 事件的向上傳遞(詳解)

    基于SSIS 事件的向上傳遞(詳解)

    下面小編就為大家分享一篇基于SSIS 事件的向上傳遞(詳解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • SQL?Server?2008R2安裝詳細圖文教程(附安裝包)

    SQL?Server?2008R2安裝詳細圖文教程(附安裝包)

    這篇文章詳細介紹了如何安裝SQL?Server,包括下載安裝包、安裝步驟和注意事項,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2024-12-12
  • SQL基礎查詢和LINQ集成化查詢

    SQL基礎查詢和LINQ集成化查詢

    本文詳細講解了SQL基礎查詢和LINQ集成化查詢,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • SQL SERVER中強制類型轉(zhuǎn)換cast和convert的區(qū)別詳解

    SQL SERVER中強制類型轉(zhuǎn)換cast和convert的區(qū)別詳解

    這篇文章主要介紹了SQL SERVER中強制類型轉(zhuǎn)換cast和convert的區(qū)別詳解的相關資料,需要的朋友可以參考下
    2016-11-11

最新評論

古浪县| 威远县| 鄂伦春自治旗| 白城市| 阳泉市| 边坝县| 上饶市| 丹东市| 芦山县| 黑山县| 洛阳市| 德清县| 同心县| 斗六市| 毕节市| 营山县| 靖远县| 澜沧| 江西省| 乐东| 云和县| 海林市| 秦安县| 小金县| 辉县市| 定陶县| 合水县| 双流县| 通许县| 淳安县| 五台县| 安宁市| 庄河市| 金寨县| 炉霍县| 互助| 神农架林区| 通许县| 南充市| 沾益县| 皮山县|