我是BigQuery的新手,在使用BigQuery的导航功能时遇到了麻烦. 我不明白这些函数是如何工作的.
我有一张桌子,它的 struct 如下:
Event_id | created_ts |
---|---|
1 | 2020-01-01 12:00:00 |
2 | 2020-01-01 12:01:00 |
3 | 2020-01-01 12:05:00 |
4 | 2020-01-01 12:06:00 |
并且我想要计算在超过一分钟的不活动之后改变的会话ID.
Session_id | created_ts |
---|---|
1 | 2020-01-01 12:00:00 |
1 | 2020-01-01 12:01:00 |
2 | 2020-01-01 12:05:00 |
2 | 2020-01-01 12:06:00 |
以下是我开始编写的SQL代码:
select event_id,
created_ts,
EXTRACT(minute FROM created_ts) as minute,
date_diff(date(created_ts),coalesce(date(lag(created_ts - minute) over(partition by event_id order by event_id)), date(created_ts)),
) session_id
from table1