sql技巧(三)在線時(shí)長|最大連續(xù)登陸天數(shù)|登錄時(shí)間間隔

1.在線時(shí)長

正常的游戲有登錄和登出但是我們想計(jì)算下在線時(shí)長,這就涉及到根據(jù)登陸表的登錄時(shí)間查找登出時(shí)間的問題,基本的原理是登陸表和登出表進(jìn)行匹配,查找離一條登錄記錄最近的登出時(shí)間即min(登出-登錄)>0


在線時(shí)長

2.最大連續(xù)登陸天數(shù)

游戲登錄表記錄的是游戲,用戶登陸的記錄,有些時(shí)候我們需要統(tǒng)計(jì)用戶的最大連續(xù)登陸天數(shù),這就面臨一個(gè)棘手的問題,如何判斷是否連續(xù),19日前面是18日的話是連續(xù)的,19日前面是17日的話就是不連續(xù)的,我們需要定義一個(gè)變量來存儲,開始的日期,還有...........

先看下結(jié)果


最大連續(xù)登陸天數(shù)


計(jì)算登錄時(shí)間間隔

SET @num:=0; #開始日期

SET? ? @type:="";? # 存放useid

SET @lastdate:="2018-01-01";

SET? @b=0;

? SELECT? ? userid

? ? ? ? ? ,logdate

? ? ? ? ? ,@lastdate,

? ? ? ? ? ? @b:=IF(@type=userid ,DATEDIFF(logdate,@lastdate),0) as? num2

? ? ? ? ? ,@type:=userid?

? ? ? ? ? ,@lastdate:=logdate

FROM

(

SELECT? id as userid ,date(date ) as logdate

FROM? 20180704rolelogin

GROUP BY? ? id ,date(date )

) as a ;

3.計(jì)算連續(xù)天數(shù)和累計(jì)付費(fèi)金額


原始數(shù)據(jù)?


需要得到的結(jié)果

第一步,得到每一個(gè)連續(xù)日期的最早開始日期,有點(diǎn)繞口 直接看圖


得到連續(xù)的日期

第二部,對中間的結(jié)果進(jìn)行匯總統(tǒng)計(jì)


得到最終結(jié)果

代碼解讀:


代碼解讀

可用代碼:

SET @a:='2018-05-03' , @b:='',@c:=0; #定義臨時(shí)變量

SELECT? name ,a? as startdate,MAX(date) as enddate,sum(pay) as money

? FROM

? ? #核心部分

(SELECT? name,@a:=IF((DATEDIFF(date,@a)=@c)and(@b=name),@a,date) as a ,

? ? ? ? ? ? ? ? ? ? ? ? #如果日期連續(xù)就保持不變,否則重置為當(dāng)前日期

? ? ? ? ? ? ? date,pay,@b:=NAME #作為輔助列區(qū)分不同的name

? ? ? ? ? ? ? ,@c:=DATEDIFF(date,@a)+1 #日期差加1作為,下一個(gè)日期的判斷標(biāo)準(zhǔn)

FROM? xiaozhan as? a ) as a

GROUP BY? name,a

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 12,378評論 6 13
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,008評論 25 709
  • 今天參加了一次特別開心的會議,雖然只有十幾個(gè)人,但是每個(gè)人都特別熱情。由于地點(diǎn)比較遠(yuǎn),我到的時(shí)候已經(jīng)遲到半小時(shí)了,...
    淋雨曬太陽閱讀 163評論 0 0
  • 反正理性 也不是什么了不得的玩意。 01 憋了好幾天雨,今天終于放了晴。早上特別想騎自行車上班。因?yàn)槌鲩T已經(jīng)有點(diǎn)晚...
    雪梨和雪柔閱讀 577評論 0 2
  • 緊趕慢趕,到了南昌,十點(diǎn)多,南昌在下雨,細(xì)雨紛紛,更有春天的感覺。也不知道什么時(shí)候開始,我喜歡上這種飄雨的天氣,果...
    洛壹閱讀 632評論 1 0

友情鏈接更多精彩內(nèi)容