如何在MYSQL中使用group by,count和where

时间:2016-11-28 10:15:40

标签: mysql

我有一张桌子,如下所示: 的表1

id (int), 
link (varchar512),
text (varchar80),
status (varchar10),
created (timestamp),
updated (timestamp),
user (varchar)

我需要做的是在两个时间戳之间获取每个用户的total count行。

因此,例如,假设我想获取数据库中用户的总行数。这只是一个简单的

 SELECT user, COUNT(*) FROM table_name GROUP BY user;

如果我想获得所有行,比如10月,我可以这样做:

SELECT * FROM table_name WHERE created > "2016-10-01 00:00:00" and created < "2016-11-31 23:59:59"

我的问题是,我无法将两者结合起来。我试试,我得到语法错误。我认为我需要运行where查询,然后根据它进行计数,但我不确定如何做到这一点。

2 个答案:

答案 0 :(得分:1)

希望这有帮助。

SELECT user, count(*) 
FROM table_name
WHERE created > "2016-10-01 00:00:00" and created < "2016-11-31 23:59:59"
GROUP BY user;

答案 1 :(得分:0)

SELECT user, COUNT(*) 
FROM table_name 
WHERE created >= '2016-10-01' 
  and created < '2016-12-01'
GROUP BY user;

BTW没有日期2016-11-31,因为11月只有30天。