获取创建记录之间的平均时间

RJP*_*RJP 2 sql t-sql sql-server sql-server-2012

所以我有这样的数据:

UserID  CreateDate
1       10/20/2013 4:05
1       10/20/2013 4:10
1       10/21/2013 5:10
2       10/20/2012 4:03
Run Code Online (Sandbox Code Playgroud)

我需要按每个用户分组获取CreateDates之间的平均时间.我想要的结果是这样的:

UserID  AvgTime(minutes)
1       753.5
2       0
Run Code Online (Sandbox Code Playgroud)

如何找到为用户分组返回的所有记录的CreateDates之间的区别?

编辑:

使用SQL Server 2012

Lam*_*mak 7

试试这个:

SELECT  A.UserID,
        AVG(CAST(DATEDIFF(MINUTE,B.CreateDate,A.CreateDate) AS FLOAT)) AvgTime
FROM #YourTable A
OUTER APPLY (SELECT TOP 1 *
             FROM #YourTable
             WHERE UserID = A.UserID
             AND CreateDate < A.CreateDate
             ORDER BY CreateDate DESC) B
GROUP BY A.UserID
Run Code Online (Sandbox Code Playgroud)