我有一个事件表,每一行都有一个 StartDateTime 列。我需要查询事件的子集(例如通过用户 ID)并确定连续事件之间的平均天数。
桌子基本上是这样的。
TransactionID TransactionStartDateTime
----------------------------------------
277 2011-11-19 11:00:00.000
278 2011-11-19 11:00:00.000
279 2012-03-20 15:19:46.160
288 2012-03-20 19:23:06.507
289 2012-03-20 19:43:41.980
291 2012-03-20 19:55:17.523
我试图调整此问题中引用的以下查询:
select a.TransactionID, b.TransactionID, avg(b.TransactionStartDateTime-a.TransactionStartDateTime) from
(select *, row_number() over (order by TransactionStartDateTime) rn from Transactions) a
join (select *, row_number() over (order by TransactionStartDateTime) rn from Transactions) b on (a.rn=b.rn-1)
group by
a.TransactionID, b.TransactionID
但是我在这里没有任何运气,因为原始查询不期望 DateTimes
我的预期结果是代表平均天数的一位数(我现在意识到这不是上面的查询所给出的)
有任何想法吗?