MySQL按上周的日期分组数据

时间:2017-09-06 14:00:54

标签: mysql

我正在尝试编写一个查询,按工作日对最近7天的统计数据进行分组并返回以下内容:

    dayname | count(*)
-----------------------
Monday      |   3              
Tuesday     |   2        

上面的是我想要的输出但是我似乎无法获得日期名称。

    Day(enquiries.created_at) | Count(enquiries.id)
-----------------------------------------------------
    1                         | 1
    3                         | 1
    4                         | 14
    31                        | 5

上面是我当前的输出,解释是8月31日,9月1日等...但是我想按工作日名称而不是日期进行分组。

这是我到目前为止的查询:

SELECT Day(enquiries.created_at), 
       Count(enquiries.id) 
FROM   enquiry_stats 
       LEFT JOIN enquiries 
              ON enquiry_stats.enquiry_id = enquiries.id 
WHERE  created_at >= Date_add(Curdate(), INTERVAL -7 day) 
GROUP  BY Day(enquiries.created_at);

我只是想知道如何按天分组而不是按天名分组数据?

1 个答案:

答案 0 :(得分:4)

“我只是想知道如何将数据分组不是而是 dayname ?”

听起来很简单,请改用DAYNAME()

SELECT DayName(enquiries.created_at), 
       Count(enquiries.id) 
FROM   enquiry_stats 
       LEFT JOIN enquiries 
              ON enquiry_stats.enquiry_id = enquiries.id 
WHERE  created_at >= Date_add(Curdate(), INTERVAL -7 day) 
GROUP  BY DayName(enquiries.created_at);