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 个查询?

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 回答