最大連續簽到天數 sql

2021-10-04 07:48:27 字數 1434 閱讀 8620

select   min(rq) as 起始日期

, max(rq) as 終止日期

, max(id1) - min(id1) + 1 as 持續天數

,id3 as 累計簽到天數

,name

from (

select datediff(rq,'2020-02-01' )id1

, (

select count(1)

from tmptable

where rq <= a.rq and

type = '是'

) id2,

( select count(1)

from tmptable

where

type = '是'

) id3, (

select max(rq)

from tmptable

where rq < a.rq

and type = '是'

) rq2,rq,type,name

from tmptable a

where type = '是'

) agroup by a.id1 - a.id2

order by 持續天數 desc

select   min(rq) as 本期起始日期

, max(rq) as 本期終止日期

, max(id1) - min(id1) + 1 as 持續天數

, case a.id1 - a.id2

when -1 then 0

else max(datediff( rq2, rq))

end as 距上一期天數

from (

select datediff(rq,'2020-02-01' )id1

, (

select count(1)

from tmptable

where rq <= a.rq and

type = '是'

) id2, (

select max(rq)

from tmptable

where rq < a.rq

and type = '是'

) rq2,rq,type,name

from tmptable a

where type = '是'

) agroup by a.id1 - a.id2

mysql 連續簽到天數 最大連續簽到天數 sql

select min rq as 起始日期 max rq as 終止日期 max id1 min id1 1 as 持續天數 id3 as 累計簽到天數 name from select datediff rq,2020 02 01 id1 select count 1 from tmptable ...

用sql解決最近連續簽到與最大連續簽到

題目 有一張使用者簽到表 t user attendence 標記每天使用者是否簽到 說明 該錶包含所有使用者所有工作日的出勤記錄 包含三個字段 日期 fdate 使用者id fuser id 使用者當天是否簽到 fis sign in 0否1是 問題1 請計算截至當前每個使用者已經連續簽到的天數 ...

sql 得到連續簽到天數及總簽到天數

declare days int set days 0 declare curr day datetime 建立day用於儲存連續簽到日期set curr day getdate curr day為當前日期 while exists select null from mall membersign ...