21. 세션 유지 시간을 10분으로 재정의하기

2024-12-24

SELECT user_pseudo_id
	, event_timestamp_kst
	, event_name
	, ga_session_id
	, SUM(CASE WHEN CAST(strftime('%s', event_timestamp_kst) AS INTEGER) - CAST(strftime('%s', last_log) AS INTEGER) >= 600 THEN 1 ELSE 0 END)OVER(
	ORDER BY event_timestamp_kst
	ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
	) +1 AS new_session_id
FROM (
	SELECT COALESCE(LAG(event_timestamp_kst)OVER(ORDER BY event_timestamp_kst), event_timestamp_kst) last_log
	, *
	FROM ga
	WHERE user_pseudo_id = 'a8Xu9GO6TB'
	ORDER BY event_timestamp_kst
) a