【问题标题】:MySQL Group data by name of day in last weekMySQL按上周日期的名称分组数据
【发布时间】:2017-09-06 22:06:00
【问题描述】:

我正在尝试编写查询以按工作日对过去 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);

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

【问题讨论】:

    标签: mysql


    【解决方案1】:

    “我只是想知道如何不按 day 而是按 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);
    

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2020-08-01
      • 1970-01-01
      • 2018-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 2010-10-29
      相关资源
      最近更新 更多