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
试试这个:
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)