Lv5. 어떤 컨텐츠를 보고 유입되었을까?
https://solvesql.com/problems/referrer-contents/
WITH T1 AS (
SELECT SUBSTR(page_location, LOCATE('content',page_location)) AS 'content'
, page_location
, source
, event_name
FROM ga
WHERE source = 'brunch'
AND event_name = 'page_view'
AND (page_title = '백문이불여일타 SQL 캠프 실전반'
OR page_title = '백문이불여일타 SQL 캠프 심화반')
)
SELECT DISTINCT SUBSTR(content, LOCATE('=',content)+1) AS 'content'
, page_location
FROM T1
WHERE content LIKE '%=%'
❗SELECT 절에 SUBSTR(), LOCATE() 사용해서 content에서 content 뽑기 (content=@@ -> @@)
❗LOCATE()에 '=' 위치 찾은 다음 +1 -> '=' 다음의 문자열 시작 위치 추출
❗WHERE 절에 LIKE 사용해서 '='이 있는 문자열만 추출
(T1의 content는 utm_content가 없는 것들도 같이 나와서 필터링 : 같이 나오는 이유는 모르겠음)
+) WITH 절
❗WHERE 절에 조건 넣기 (source, event_name, page_title)
❗page_title은 괄호로 묶어야 제대로 작동됨
❗AND 를 먼저 넣고 OR을 나중에 넣어야 코드가 꼬이지 않는다
❗SELECT 절에 SUBSTR(), LOCATE() 사용해서 page_location에서 content 뽑기
- LOCATE(찾을 문자, 열) : 열에서 찾을 문자의 위치를 숫자로 알려줌
- SUBSTR(열, 시작 숫자, 종료 숫자) : 열에 위치한 각 데이터에서 시작 숫자 부터 종료 숫자까지의 문자열을 반환
'SQL > SQL | SOLVESQL 코딩테스트' 카테고리의 다른 글
SQL | SOLVESQL 코딩테스트 : Lv5. (ANALYTICS) (3) | 2024.12.14 |
---|---|
SQL | SOLVESQL 코딩테스트 : Lv5. (WINDOWFUNCTION) (0) | 2024.12.12 |
SQL | SOLVESQL 코딩테스트 : Lv5. (JOIN/UNION) (2) | 2024.12.09 |
SQL | SOLVESQL 코딩테스트 : Lv4. (ANALYTICS) (0) | 2024.12.05 |
SQL | SOLVESQL 코딩테스트 : Lv4. (CASE/IF) (1) | 2024.12.04 |