2016-11-22 45 views
1

平均DATEDIFF我有例如以下DATABSE:MySQL的每月

date1  | date2  | datediff 
2016-11-02 | 2016-11-05 | 3 
2016-11-08 | 2016-11-10 | 2 
2016-11-01 | 2016-11-05 | 4 
2016-11-09 | 2016-11-09 | 0 
2016-11-15 | 2016-11-20 | 5 

我得到如下的sql的DATEDIFF:

select 
datediff(date2, date1) 
from table 

現在我需要的平均DATEDIFF每月, 在這案件爲 2016-11:2.8

在此先感謝,帕特里克。

+0

如果什麼DATE1與DATE2在不同月份? –

回答

2

你可以使用一個月(),AVG和組由

select year(date1), month(date1), avg(datediff(date2, date1)) 
from my_table 
group by year(date1), month(date1) 
; 
+0

這個答案更有意義 –

+0

@Prdp謝謝.. – scaisEdge

+0

謝謝,這是工作! – Patrick

1

我想你可以只使用group by

select year(date1), month(date1), AVG(datediff(date2, date1)) 
from table 
group by year(date1), month(date1); 
1
select AVG(datediff(date2, date1)) 
from table 
group by year(date1), month(date1); 
1

你可以得到這個月的最後一天任何日期/時間值與LAST_DAY() function。 (這聽起來比現在更具啓示性。)這對分組很有用。

所以,儘量

SELECT LAST_DAY(date1) month_ending, AVG(DATEDIFF(date2,date1)) datediff 
    FROM table 
    GROUP BY LAST_DAY(date1) 
    ORDER BY LAST_DAY(date1) 
0
select avg(datediff(date2, date1))as difference 
from table 
group by year(date1),month(date1)