2011-12-07 36 views
0

我需要在日期和時間之間做一個算術平均值的圖形(我不知道這是否是正確的單詞,對不起)星期一,星期二......星期日。一週中的每一天的小時數。如何從星期一到星期日獲取各種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

UPDATE:

我最後需要:

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 

提前感謝!

+0

你能有一些數據和預期的結果添加一個例子嗎? – evan

+0

http://stackoverflow.com/questions/1021947/how-can-i-make-an-average-of-dates-in-mysql的可能的重複? – rdlowrey

+0

@evan更新!謝謝 – udexter

回答

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
select AVG(columnToAverage) 
    , DAYOFWEEK(log_date) 
    from log 
where log_date between '2011-01-01' AND '2011-10-31' 
group 
    by DAYOFWEEK(log_date) 
相關問題