ホーム > MySQL
MySQL アーカイブ
ログイン率を求めてみる
- 2007 年 5 月 28 日 10:54
- MySQL
ログイン時のコールバック関数に「最終ログイン時刻(lastlogintime)が前日であった場合に logincount カラムに1を足す」処理を追加。
登録日から現在の日付を差し引き、経過日数を求め「logincount ÷ 経過日数」がログイン率となる。
UPDATE `アカウントテーブル` SET `logincount` = `logincount` + 1 WHERE ((DATE_FORMAT(NOW(), '%d') - DATE_FORMAT(FROM_UNIXTIME(`lastlogintime`) , '%d')) + (DATE_FORMAT(NOW(), '%m') - DATE_FORMAT(FROM_UNIXTIME(`lastlogintime`) , '%m')) + (DATE_FORMAT(NOW(), '%y') - DATE_FORMAT(FROM_UNIXTIME(`lastlogintime`) , '%y'))) > 0 AND `username` = 'ユーザ名';
で、logincount カラムに1を足す。
FROM_UNIXTIME(`lastlogintime`) としているのは、datetime じゃなくて int 型だから。
SELECT (`logincount` / DATEDIFF(NOW(),`登録日カラム`)) AS `average` FROM `アカウントテーブル` WHERE `username` = 'ユーザ名';
これで結果セットの average カラムに日毎のログイン率が割り出せる。
PHP のつもりが MySQL だけでなんとかなった例。
ホーム > MySQL