Lv4. 입문반 페이지를 본 세션 찾기
https://solvesql.com/problems/session-pv/
WITH T1 AS (
SELECT user_pseudo_id
, ga_session_id
, event_name
, page_title
FROM ga
WHERE page_title = '백문이불여일타 SQL 캠프 입문반'
AND event_name = 'page_view'
)
SELECT COUNT(DISTINCT ga.user_pseudo_id, ga.ga_session_id) AS total
, COUNT(DISTINCT ga.user_pseudo_id, ga.ga_session_id) - COUNT(DISTINCT T1.user_pseudo_id, T1.ga_session_id) AS pv_no
, COUNT(DISTINCT T1.user_pseudo_id, T1.ga_session_id) AS pv_yes
FROM ga
LEFT JOIN T1 ON ga.user_pseudo_id = T1.user_pseudo_id
AND ga.ga_session_id = T1.ga_session_id
❗기존의 user_pseudo_id, ga_session_id 수에서 입문반 페이지를 본 사람을 빼기
❗COUNT()에 칼럼 2개를 넣어도 개수를 셀 수있음
❗LEFT JOIN 해서 기존의 테이블과 생성한 테이블 조인
❗JOIN 조건 사용해서 user_pseudo_id, ga_session_id 가 같은 것들만 조인
+) WITH T1
❗WHERE 절에 조건 넣어서 입문반 페이지를 본 내용만 추출
Lv4. 페이지에서 스크롤을 내렸을까?
https://solvesql.com/problems/session-scroll/
WITH T1 AS (
SELECT event_timestamp_kst
, user_pseudo_id
, ga_session_id
, event_name
, page_title
FROM ga
WHERE page_title = '백문이불여일타 SQL 캠프 입문반'
AND event_name = 'page_view'
), T2 AS (
SELECT event_timestamp_kst
, user_pseudo_id
, ga_session_id
, event_name
, page_title
FROM ga
WHERE page_title = '백문이불여일타 SQL 캠프 입문반'
AND event_name = 'scroll'
)
SELECT COUNT(DISTINCT ga.user_pseudo_id, ga.ga_session_id) AS total
, COUNT(DISTINCT ga.user_pseudo_id, ga.ga_session_id) - COUNT(DISTINCT T1.user_pseudo_id, T1.ga_session_id) AS pv_no
, COUNT(DISTINCT T1.user_pseudo_id, T1.ga_session_id) - COUNT(DISTINCT T2.user_pseudo_id, T2.ga_session_id) AS pv_yes_scroll_no
, COUNT(DISTINCT T2.user_pseudo_id, T2.ga_session_id) AS pv_yes_scroll_yes
FROM ga
LEFT JOIN T1 ON ga.user_pseudo_id = T1.user_pseudo_id
AND ga.ga_session_id = T1.ga_session_id
LEFT JOIN T2 ON ga.user_pseudo_id = T2.user_pseudo_id
AND ga.ga_session_id = T2.ga_session_id
AND T1.event_timestamp_kst <= T2.event_timestamp_kst
❗기존의 user_pseudo_id, ga_session_id 수에서 입문반 페이지를 본 사람을 빼기
❗COUNT()에 칼럼 2개를 넣어도 개수를 셀 수있음
❗JOIN 시 조건을 여러개 달려면 AND 로 연결
+) WITH T1
❗WHERE 절에 조건 넣어서 입문반 페이지를 본 내용만 추출
+) WITH T2
❗WHERE 절에 조건 넣어서 입문반 페이지를 스크롤한 내용만 추출
'SQL > SQL | SOLVESQL 코딩테스트' 카테고리의 다른 글
SQL | SOLVESQL 코딩테스트 : Lv4. (CASE/IF) (1) | 2024.12.04 |
---|---|
SQL | SOLVESQL 코딩테스트 : Lv4. (WINDOWFUNCTION) (1) | 2024.12.03 |
SQL | SOLVESQL 코딩테스트 : Lv3. (ANALYTICS) (2) | 2024.11.28 |
SQL | SOLVESQL 코딩테스트 : Lv3. (CASE/IF) (0) | 2024.11.27 |
SQL | SOLVESQL 코딩테스트 : Lv3. (AGGREGATE) (1) | 2024.11.26 |