所以我有这样的数据:
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
我需要按每个用户分组以获得 CreateDates 之间的平均时间。我想要的结果是这样的:
UserID AvgTime(minutes)
1 753.5
2 0
如何找到为用户分组返回的所有记录的 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
关于sql - 获取记录创建之间的平均时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19501789/