저작권 문제로 인해, 직접 작성한 쿼리문만 공개.
21. 세션 유지 시간을 10분으로 재정의하기
https://solvesql.com/problems/redefine-session-2/
WITH user_event AS (
SELECT
user_pseudo_id,
event_timestamp_kst,
event_name,
ga_session_id,
LAG(event_timestamp_kst) OVER(ORDER BY event_timestamp_kst) AS prev_event_time
FROM ga
WHERE user_pseudo_id = 'a8Xu9GO6TB'
)
, group_reset AS (
SELECT
user_pseudo_id,
event_name,
event_timestamp_kst,
ga_session_id,
CASE
WHEN TIMESTAMPDIFF(MINUTE, prev_event_time, event_timestamp_kst) > 10 OR prev_event_time IS NULL THEN 1 ELSE 0
END AS new_group
FROM user_event
)
, regrouping AS (
SELECT
user_pseudo_id,
event_timestamp_kst,
event_name,
ga_session_id,
SUM(new_group) OVER(ORDER BY event_timestamp_kst) AS new_session_id
FROM group_reset
)
SELECT
user_pseudo_id,
event_timestamp_kst,
event_name,
ga_session_id,
new_session_id
FROM regrouping
ORDER BY event_timestamp_kst
'sql > Advent of SQL 2024' 카테고리의 다른 글
SQL 문제 풀이 챌린지(23/25) - 유량(Flow)와 저량(Stock) (0) | 2024.12.23 |
---|---|
SQL 문제 풀이 챌린지(22/25) - 친구 수 집계하기 (0) | 2024.12.22 |
SQL 문제 풀이 챌린지(20/25) - 미세먼지 수치의 계절간 차이 (0) | 2024.12.20 |
SQL 문제 풀이 챌린지(19/25) - 전국 카페 주소 데이터 정제하기 (0) | 2024.12.19 |
SQL 문제 풀이 챌린지(18/25) - 펭귄 날개와 몸무게의 상관 계수 (0) | 2024.12.18 |