如何在SQL Server中获取10分钟内交易的分组统计结果
问题描述
需按用户统计交易组数,分组规则为:同一用户的交易中,连续交易的时间差在10分钟内则归为同一组;当某笔交易与前一组最后一笔交易的间隔超过10分钟时,判定为新组。
源表数据
| 序号 | 用户 | 交易时间 |
|---|---|---|
| 1 | A | 2023-10-01 09:00:00 |
| 2 | A | 2023-10-01 09:10:00 |
| 3 | A | 2023-10-01 09:15:00 |
| 4 | A | 2023-10-01 09:18:00 |
| 5 | A | 2023-10-01 09:20:00 |
| 6 | B | 2023-10-01 10:00:00 |
| 7 | B | 2023-10-01 10:05:00 |
| 8 | B | 2023-10-01 10:12:00 |
| 9 | B | 2023-10-01 10:18:00 |
| 10 | C | 2023-10-01 11:00:00 |
| 11 | C | 2023-10-01 11:11:00 |
| 12 | C | 2023-10-01 11:15:00 |
分组逻辑示例
- 用户A:序号1的交易单独成组;序号2-5的交易均在10分钟窗口内(09:10至09:20,间隔未超10分钟),归为一组;后续若存在与09:20间隔超10分钟的交易则为第三组,最终共3组。
- 用户B:序号6单独成组;序号7-9的交易时间在10分钟范围内(10:05至10:18,间隔未超10分钟),归为一组,最终共2组。
- 用户C:序号10单独成组;序号11-12的交易间隔在10分钟内,归为一组,最终共2组。
期望统计结果
| 用户 | 交易组数 |
|---|---|
| A | 3 |
| B | 2 |
| C | 2 |
内容的提问来源于stack exchange,提问作者Manish Parmar
相关产品推荐
相关产品推荐

