七日存留查詢 MYSQL

2021-08-31 00:08:28 字數 2490 閱讀 6247

使用當前日期往前推,  一至七日, 每日存留都會更新,   最新存留資訊

推薦使用定時排程任務每日23:55 分執行, 這個查詢資料量比較大

使用者表裡必須有兩個字段, 使用者建立時間create_time(型別為date,ymd),  最後登入時間last_login

select

ifnull((

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -1 day) and last_login >= date_format(now(),'%y-%m-%d'))/

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -1 day))

),0) one_day,

ifnull((

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -2 day) and last_login >= date_format(now(),'%y-%m-%d'))/

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -2 day))

),0) tow_day,

ifnull((

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -3 day) and last_login >= date_format(now(),'%y-%m-%d'))/

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -3 day))

),0) three_day,

ifnull((

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -4 day) and last_login >= date_format(now(),'%y-%m-%d'))/

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -4 day))

),0) four_day,

ifnull((

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -5 day) and last_login >= date_format(now(),'%y-%m-%d'))/

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -5 day))

),0) five_day,

ifnull((

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -6 day) and last_login >= date_format(now(),'%y-%m-%d'))/

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -6 day))

),0) six_day,

ifnull((

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -7 day) and last_login >= date_format(now(),'%y-%m-%d'))/

(select count(*) from ylb_account where create_date = date_add(date_format(now(),'%y-%m-%d'),interval -7 day))

),0) seven_day

結果字段資料型別為fload,   乘100 即可轉換成百分比

人生七日忠告

人生七日忠告 第一日的忠告 經常給人乙個驚喜給朋友乙個驚喜,能增進友誼 給家人乙個驚喜,能帶來無比的歡樂 給孩子乙個驚喜,能激發其活力 給同事乙個驚喜,能融洽良好的人際關係 一聲輕輕的問候,乙份貼心的關懷,能給人意想不到的溫暖。把自己的快樂告訴他人,大家共享其樂融融。驚喜不要去刻意炮製 第二日的忠告...

人 生 七 日 忠 告

第一日的忠告 經常給人乙個驚喜 給朋友乙個驚喜,能增進友誼 給家人乙個驚喜,能帶來無比的歡樂 給孩子乙個驚喜,能激發其活力 給同事乙個驚喜,能融洽良好的人際關係 一聲輕輕的問候,乙份貼心的關懷,能給人意想不到的溫暖。把自己的快樂告訴他人,大家共享其樂融融。驚喜不要去刻意炮製 第二日的忠告 善於彌補別...

mysql統計使用者七日留存儲存過程

begin declare i int declare numareaid int 10 declare currentareaid int 10 select count areaid min areaid into a,b from option area info set numareaid ...