我创建了一个表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
.... ..
.... ..
所以有人请帮帮我吗?
答案 0 :(得分:2)
只需将DAYNAME
添加到列列表中即可汇总。
SELECT DAYNAME(timestamp), COUNT(*)
FROM `emp_info`
WHERE DATE(timestamp ) > DATE_SUB( CURDATE( ) , INTERVAL 1 WEEK )
GROUP BY DAYNAME(timestamp)
ORDER BY saved_timestamp
答案 1 :(得分:1)
尝试从日期中提取星期几,然后使用计数并按星期几对其进行分组,您可以计算当天的每一天。
SELECT DAYOFWEEK(DATE(timestamp)), count(*) FROM `emp_info` WHERE DATE(timestamp ) > DATE_SUB( CURDATE( ) , INTERVAL 1 WEEK ) group by DAYOFWEEK(DATE(timestamp))