1

サイト上のさまざまなタイプのアクションを監視したいので、例としてログインを使用します。

user_logins table:

user_id     name            when_logged
-------     ----            -----------
smallint    varchar(128)    timestamp

したがって、今日(および何回)ログオンした各ユーザーを確認するには、次を使用します。

select name, count(name) from user_logins 
where when_logged between '2012-11-17 00:00:00' AND '2012-11-17 23:59:59' 
group by name;

しかし、私は過去14日間、毎日別々にそれをやりたいと思っています...

日付を変更することで、14のクエリではなく、1つのクエリでこれを行うことは可能ですか?

4

2 に答える 2

1
 select name, count(when_logged) 
 from user_logins 
 where when_logged >= curdate() - interval 14 day
 group by name, date(when_logged)
于 2012-11-17T18:34:04.957 に答える
1
select date(when_logged) as datelogged, name, count(name) 
from user_logins
where when_logged >= date_sub(current_timestamp, INTERVAL 14 day) 
group by name, date(when_logged);
于 2012-11-17T18:34:14.853 に答える