2013-12-16 100 views
2

我有一個表,詳情如下查找平均日期之間的差異 - SQL選擇

Repid | buildDate   | BuildVersion 
--------------------------------- 
1  2013-11-15 10:41:00 1683 
1  2013-11-15 11:10:00 1684 
1  2013-11-15 12:14:00 1685 
2  2013-11-15 10:41:00 1688 
2  2013-11-15 11:10:00 1689 
2  2013-11-15 12:14:00 1690 

每個REPID,我需要找到差異的平均值連續積版本之間小時。

+0

你能粘貼所需出來放在這裏。 –

回答

4
select b1.RepId 
,  avg(abs(datediff(hour, b1.buildDate, b2.buildDate))) 
from builds b1 
join builds b2 
on  b1.BuildVersion = b2.BuildVersion + 1 
     and b1.Repid = b2.Repid 
group by 
     b1.RepId 

Live example at SQL Fiddle.

+0

它給減號( - )的差異,所以你應該改變它爲b2.buildDate - b1.buildDate –

+0

在呼叫之前添加abs datediff- –

+0

這是有效的!只是在我的例子中,日期參數需要交換datediff(hour,b2.buildDate,b1.buildDate)。 – mhn