如何从星期一到星期日得到MySQL各种日期的算术平均值

时间:2011-12-07 19:02:54

标签: php mysql

我需要在日期之间做一个算术平均值的图形(我不知道这是否是正确的单词,对不起)并得到星期一,星期二......星期日的平均小时数。一周中每天的小时数。

该表格中有log_date列,我有一个开始日和结束日,实际上我做了:

SELECT id, log_hours FROM log WHERE log_date >= DATE('2011-01-01') AND log_date <= DATE('2011-10-31')

这将给我这两个日期之间的ID。但我不需要这个。我需要的是星期一,星期二等的媒介,以便知道每天的正常工作时间是什么。

我怎么做?我也用PHP编码

更新

我最终需要的是:

MONDAY: 3, 4, 10, 12, 5, final result => 6,8
TUESDAY: 2, 8, 8, 2, 1, final result => 4,2
WENDSDAY: 1, 1, 10, 5, 2, final result => 3,8
THURDAY 8, 10, 12, 5, 6, final result => 6,2
FRIDAY: 1, 1, 1, 1, 1, final result => 1
SATURDAY: 0, 8, 2, 0, 1, final result => 2,2
SUNDAY: 0, 0, 0, 0, 0, final result => 0

提前致谢!

2 个答案:

答案 0 :(得分:2)

您可以使用DAYOFWEEK功能选择某一天的值。此查询将为您提供单个查询中每天log_hours的平均值:

SELECT DAYOFWEEK(log_date), AVG(log_hours) FROM log 
WHERE log_date >= DATE('2011-01-01') AND log_date <= DATE('2011-10-31')
GROUP BY DAYOFWEEK(log_date)

答案 1 :(得分:1)

select AVG(columnToAverage)
     , DAYOFWEEK(log_date)
  from log
 where log_date between '2011-01-01' AND '2011-10-31'
 group
    by DAYOFWEEK(log_date)