我有一个包含用户数据的表格,我想进行一个有效的查询来选择用户Count(userId例如)PER DAY。
所以输出将是:
20/07/2015 - 50 new users
21/07/2015 - 23 new users
22/07/2015 - 19 new users
如何使用一个查询执行此操作?一个while()循环然后每天进行一次查询对我来说效率都非常低。
答案 0 :(得分:0)
您可以拥有一个具有以下结构的架构(我正在使用MySql的语法):
create table users(
user_id int,
create_date date
);
说它填充了以下数据:
insert into users values (1, STR_TO_DATE('1-01-2012', '%d-%m-%Y'));
insert into users values (2, STR_TO_DATE('1-01-2012', '%d-%m-%Y'));
insert into users values (3, STR_TO_DATE('1-01-2012', '%d-%m-%Y'));
insert into users values (4, STR_TO_DATE('2-01-2012', '%d-%m-%Y'));
如果您选择用户ID并按create_date对其进行分组,则您将使用单个查询获得所需的响应:
select count(user_id) as count,create_date from users group by create_date;
count create_date
3 January, 01 2012 00:00:00
1 January, 02 2012 00:00:00