这不是最容易解释的,所以我会尽力而为,但请询问您是否需要更多说明。
我正在使用 hive SQL,并且有一个包含用户和事件时间的表。我要计算的内容,如下面的 rownum 列所示,是一个在 4 小时窗口内按用户和事件时间划分的递增序列,在第一个包含值的 event_time 后 4 小时重置。
所以在下表中...
用户 A 的所有记录都在 00:01:00
- 04:00:00 之间 用户 B 有 3 个事件,在 00:01:00 - 04:01:00 的第一个窗口之间,并且从 04:08:00 - 08:08:00 在第二个窗口中
有 2 个事件 用户 C 在第一个 00:01:00 - 04:01:00 窗口中有 2 个事件,在第二个 04:10:00 有 1 个事件 - 08:10:00 窗口,以及 08:15:00 - 12:15:00 窗口中的 2 个事件
任何帮助/指针将不胜感激!
| user | event_time | rownum |
|------|------------|--------|
| A | 00:01:00 | 1 |
| A | 00:02:00 | 2 |
| A | 02:30:00 | 3 |
| B | 00:01:00 | 1 |
| B | 00:02:00 | 2 |
| B | 02:30:00 | 3 |
| B | 04:08:00 | 1 |
| B | 04:10:00 | 2 |
| C | 00:01:00 | 1 |
| C | 00:02:00 | 2 |
| C | 04:10:00 | 1 |
| C | 08:15:00 | 1 |
| C | 08:17:00 | 2 |