获取一列日期的平均值作为日期

时间:2013-12-17 16:54:42

标签: sql-server

我的SQL表(SQL Server结构)有一堆工作订单与我的每个资产相关联,并带有完成日期。所以这样的事情(但每个资产的20多个WO&#39):

WO#1      10/20/12 12:00:00 AM
WO#2      10/31/12 12:00:00 Am

我试图创建一个脚本,让我得到WO之间的平均时间。所以我基本上需要得到这个日期列的差异总和。我认为这有一些CASTdateDiffavg解决方法的组合,但我尝试了很多变化而且似乎无法获得它。有什么想法吗?

所以如果我有3个日期10 / 20,10 / 25和11/12 你可以在前两天和第二天之间的18天之间找到5天。然后我想要平均值(5,18)= 11.5

2 个答案:

答案 0 :(得分:0)

我认为这就是你要做的事情:

SELECT AssetID, DATEDIFF(d, MIN(datecol), MAX(datecol)) as Days
FROM table
GROUP BY AssetID

将为您提供第一份和最后一份工作单之间的天数。

答案 1 :(得分:0)

刚刚看到这篇文章。它已经过时但是对于其他任何看到这个的人来说,上面的答案实际上是错误的Max - Min是范围。 AVG是所有已添加的值/值的计数。

获得平均值:CAST(AVG(CAST(yourdate AS INT)) AS DATETIME)