我有一个问题,我一直在努力解决。如果有人可以帮助我,那就太好了。它位于 SQL Server 2012 上。
我有一个表,其中包含一定数量的事务和用户 ID。我需要计算彼此在一小时内的所有事务,并按用户 ID 分组。它也不能按 datepart(hh,1,SomeColumn) 分组,因为那样它只会处理发生在 16:00 - 16:59 的事务。
因此,我需要按发生的第一笔交易 + 1 小时对其进行分组,然后如果稍后发生另一组交易,我也需要将其分组。
例子:
第一个交易是 13:45 - 我需要计算从 13:45 到 14:45 发生的所有交易。按用户 ID 分组。
然后我需要计算在 16:09 - 17:09 发生的所有事务,这些事务按相同的用户 ID 分组。
如果这有点令人困惑,我深表歉意。
桌子:
用户 | 交易时间
0125 | 2016 年 3 月 6 日 12:24:01
0125 | 2016 年 3 月 6 日 12:34:06
0125 | 2016 年 3 月 6 日 13:22:02
0125 | 2016 年 3 月 6 日 16:24:10
0125 | 2016 年 3 月 6 日 17:10:08
输出:
用户 | 交易时间开始 | 交易时间结束 | 交易
0125 | 2016 年 3 月 6 日 12:24:01 | 2016 年 3 月 6 日 13:22:02 | 3
0125 | 2016 年 3 月 6 日 16:24:10 | 2016 年 3 月 6 日 17:10:08 | 2