??stat_time timestamp NOT NULL DEFAULT '2000-01-01 00:00:00',??
??add_time timestamp NOT NULL DEFAULT '2000-01-01 00:00:00',? ?
??PRIMARY KEY (id)??
)ENGINE=MYISAM DEFAULT CHARSET=utf8;
復(fù)制代碼
DELIMITER $??
-- 統(tǒng)計留存率??
DROP PROCEDURE IF EXISTS stat_remain_player$??
CREATE PROCEDURE stat_remain_player()??
BEGIN??
declare i int;??
SET i = 1;? ?
??
insert into stat_remain(dru,stat_time,add_time) select count(a_qid),date_sub(curdate(),interval 1 day),now() from tb_fish where datediff(now(),add_time)=1;??
? ? update stat_remain set second_day=(select (select count(distinct player_id) from log_login where datediff(curdate(),register_time) =i and datediff(date_add(curdate(),interval 1-i day),last_login_time)=0)/(select count(distinct player_id) from log_login where datediff(curdate(),register_time) =i))*100 where datediff(curdate(),stat_time) =i;? ?
? ? update stat_remain set third_day=(select (select count(distinct player_id) from log_login where datediff(curdate(),register_time) =i and datediff(date_add(curdate(),interval 2-i day),last_login_time)=0)/(select count(distinct player_id) from log_login where datediff(curdate(),register_time) =i))*100 where datediff(curdate(),stat_time) =i;? ?
? ? update stat_remain set seventh_day=(select (select count(distinct player_id) from log_login where datediff(curdate(),register_time) =i and datediff(date_add(curdate(),interval 6-i day),last_login_time)=0)/(select count(distinct player_id) from log_login where datediff(curdate(),register_time) =i))*100 where datediff(curdate(),stat_time) =i;? ?
? ? update stat_remain set thirtieth_day=(select (select count(distinct player_id) from log_login where datediff(curdate(),register_time) =i and datediff(date_add(curdate(),interval 29-i day),last_login_time)=0)/(select count(distinct player_id) from log_login where datediff(curdate(),register_time) =i))*100 where datediff(curdate(),stat_time) =i;? ?