我有一张桌子需要为其创建会话。在此表中,我们记录了用户以及应用程序中发生的事件。当事件条目是登录时,需要拆分这些会话。在登录后发生的具有相同用户的任何条目都是同一会话的一部分,直到发生新的登录事件条目。
所以两个cols用户和事件,以及按用户分组的会话的分割以及何时需要将Event = 'app:login'
添加到结果中。
我正在考虑使用GROUP BY然后加入该结果然后在每一行上连接它。
答案 0 :(得分:0)
我找到了我的答案,他们将一些随机的sql坦诚相处,直到我得到了我的结果。
SELECT *
, "userid" || '_' || SUM(new_session)
OVER (PARTITION BY "userid" ORDER BY "datetime") AS session_id
FROM (
SELECT
*,
CASE WHEN "eventname" = 'login:bo:success' THEN 1 ELSE 0 END as new_session
FROM
"TEST_events_prepared_2"
) s1