3

我创建了一个表格emp_info,其中包含电子邮件、手机、时间戳作为字段。

我想每天检索最近 1 周的记录。为此我已经尝试过

SELECT count(*) 
FROM `emp_info` 
WHERE DATE(timestamp ) > DATE_SUB( CURDATE( ) , INTERVAL 1 WEEK ) 
ORDER BY saved_timestamp

它显示总数。最近 7 天输入的记录不是我想要的输出。

所以我想要7天的记录,比如:

  Day          count
  Monday       2
  Tuesday      0
  ....         ..
  ....         ..

所以有人请帮我吗?

4

2 回答 2

2

Just add the DAYNAME to your column list and aggregate.

SELECT DAYNAME(timestamp), COUNT(*)
FROM `emp_info` 
WHERE DATE(timestamp ) > DATE_SUB( CURDATE( ) , INTERVAL 1 WEEK ) 
GROUP BY DAYNAME(timestamp)
ORDER BY saved_timestamp
于 2013-05-30T12:30:43.647 回答
1

尝试从日期中提取星期几,然后使用计数并将其按星期几分组,您可以获得每天的计数。

SELECT DAYOFWEEK(DATE(timestamp)), count(*) FROM `emp_info` WHERE DATE(timestamp ) > DATE_SUB( CURDATE( ) , INTERVAL 1 WEEK ) group by DAYOFWEEK(DATE(timestamp))
于 2013-05-30T12:36:07.770 回答