Mysql 最常见的星期查询
有此查询:Mysql 最常见的星期查询,mysql,sql,datetime,Mysql,Sql,Datetime,有此查询: SELECT HOUR( DATE ) AS hr, COUNT( * ) AS cnt FROM users GROUP BY hr ORDER BY cnt DESC DATE是一个DATETIME字段,上面的查询显示了DATE字段中最常见的小时数 我正在尝试改进它,但不知道如何做,我想将它按周天数和周内天数细分为最常见的时间。请告诉我以下是否有效: SELECT dayname(DATE) as week_day,HOUR( DATE ) AS hr, COUNT( * )
SELECT HOUR( DATE ) AS hr, COUNT( * ) AS cnt
FROM users
GROUP BY hr
ORDER BY cnt DESC
DATE是一个DATETIME字段,上面的查询显示了DATE字段中最常见的小时数
我正在尝试改进它,但不知道如何做,我想将它按周天数和周内天数细分为最常见的时间。请告诉我以下是否有效:
SELECT dayname(DATE) as week_day,HOUR( DATE ) AS hr, COUNT( * ) AS cnt
FROM users
GROUP BY week_day, hr ORDER BY cnt DESC
请尝试此查询-
SELECT
DAYOFWEEK(DATE) AS wd,
HOUR(DATE) AS hr,
COUNT(*) AS cnt
FROM
users
GROUP BY
wd, hr
ORDER BY
cnt DESC
这给了我比我预期的更多的结果(尽管确实有效)。我正在寻找一个分类:Sun/Mon/Tue/Wed/Thu/Fri/Sat,然后在最常见的时间内。然后尝试更改组byWorks中列的顺序太棒了!,我如何知道第一天的数字1是星期天还是星期一?DAYOFWEEK始终返回1=星期天,依此类推。您可以使用DATE_格式函数,例如-DATE_格式(日期,'%a'))
SELECT
DATE_FORMAT(DATE, '%a') AS wd, -- or DATE_FORMAT(DATE, '%W')
HOUR(DATE) AS hr,
COUNT(*) AS cnt
FROM
users
GROUP BY
wd, hr
ORDER BY
cnt DESC