ユーザーがアプリケーションにログインするたびに日付を記録するテーブルがあります。
テーブルは次のようになります。
Userid: int
logintime: timestamp
データは次のようになります。
Userid logindate
2 2013-09-01
2 2013-09-02
3 2013-09-02
4 2013-09-02
4 2013-09-03
5 2013-09-03
古いユーザーを追跡しながら、毎日新しいユーザーの数を見つけたいので、必要な結果は次のようになります。
logindate count of users
2013-09-01 1
2013-09-02 3
2013-09-03 4
2013-09-01 では、この日に個別にカウントする必要があります 2013-09-02 には、2013-09-01 と 2013-09-02 の間で個別にカウントする必要があります 2013-09-03 では、2013 の間で個別にカウントする必要があります-09-01 および 2013-09-03
以下のようなことを考えましたが、返されません(時間がかかります)
select date(ul.logintime) d,
(select count(distinct ul2.userid) from userlogin ul2 where
date(ul2.logintime) between ADDDATE(LAST_DAY(SUBDATE(curdate(), INTERVAL 1 MONTH)), 1)
and date(ul.logintime)) dis from userlogin ul where month(logintime) = 9;
私はMysqlサーバーを使用しています。