查询具有特定开始事件的事件序列
Query sequences of event with a specific starting event
我正在尝试从 Firebase 查询事件数据。目标是为具有以事件 a 开头的事件序列的用户获取最后一个事件。事件按时间排序。我已经尝试了一些 lead、join 等方法,但无法产生预期的结果。
示例数据:
user_id
event_name
1
a
1
b
1
c
2
b
2
a
3
a
4
a
4
b
理想输出:
user_id
event_name
1
c
3
a
4
b
The events are ordered by time.
所以,我假设您的列确实以某种方式命名为 time
考虑以下方法
select user_id, event_name
from your_table
where true
qualify 1 = row_number() over(partition by user_id order by time desc)
and 'a' = first_value(event_name) over(partition by user_id order by time)
如果应用于您问题中的示例数据 - 输出为
我正在尝试从 Firebase 查询事件数据。目标是为具有以事件 a 开头的事件序列的用户获取最后一个事件。事件按时间排序。我已经尝试了一些 lead、join 等方法,但无法产生预期的结果。
示例数据:
user_id | event_name |
---|---|
1 | a |
1 | b |
1 | c |
2 | b |
2 | a |
3 | a |
4 | a |
4 | b |
理想输出:
user_id | event_name |
---|---|
1 | c |
3 | a |
4 | b |
The events are ordered by time.
所以,我假设您的列确实以某种方式命名为 time
考虑以下方法
select user_id, event_name
from your_table
where true
qualify 1 = row_number() over(partition by user_id order by time desc)
and 'a' = first_value(event_name) over(partition by user_id order by time)
如果应用于您问题中的示例数据 - 输出为