我的用户可以采取两种行动:
1.进入房间
1.离开房间
我正在使用Azure流分析,我的目标是创建一个进入房间但在接下来的30分钟内没有离开的用户表。数据具有以下结构:
{
user_id: 'user_id',
event_name: 'Enter the room' | 'Leave the room',
event_timestamp: 'yyyy-mm-dd hh:mi:ss'
}
示例数据(事件中心流):
| 用户ID|活动名称|Event_timestamp|
| --|--|--|
| 一|进入房间|2023-09-02 12:00:00|
| B|进入房间|2023-09-02 12:10:00|
| C|进入房间|2023-09-02 12:20:00|
| 一|离开房间|2023-09-02 12:25:00|
| B|离开房间|2023-09-02 12:45:00|
所需输出(输出表):
| 用户ID|活动名称|Event_timestamp|
| --|--|--|
| B|进入房间|2023-09-02 12:10:00|
| C|进入房间|2023-09-02 12:20:00|
我尝试过使用窗口函数的功能,但是除了在FROM子句中定义的时间戳之外,它们不按任何参数分组。它导致创建时间窗口,而不考虑发生了什么事件或谁创建了事件。
1条答案
按热度按时间xuo3flqw1#
您使用下面的查询。
在这里,我将
entry_time
和exit_time
放在不同的记录中,并以进入和退出时间之差超过30分钟或为空为条件将它们连接起来。输出量: