[코딩테스트]/[SQL]
[StrataScratch - SQL] (Medium) Clicked Vs Non-Clicked Search Results
잰잰'
2025. 5. 9. 12:06
문제
검색 결과를 기반으로 두 개의 비율을 계산하세요. 먼저, 클릭된 기록들(clicked = 1) 중 상위 3위 안에 있는 비율을 구하세요. 두 번째로, 클릭되지 않은 기록들(clicked = 0) 중 상위 3위 안에 있는 비율을 구하세요. 두 비율 모두 전체 검색 기록 수를 기준으로 계산되어야 하며, 동일한 행에 두 개의 열로 출력되어야 합니다.
테이블설명
예상결과
✏️ 풀이
WITH clicked_cnt AS (
SELECT COUNT(*) AS c_cnt
FROM fb_search_events
WHERE clicked = 1 AND search_results_position <= 3
), unClicked_cnt AS (
SELECT COUNT(*) AS uc_cnt
FROM fb_search_events
WHERE clicked = 0 AND search_results_position <= 3
)
SELECT c_cnt / COUNT(*) * 100 AS top_3_clicked,
uc_cnt / COUNT(*) * 100 AS top_3_notclicked
FROM fb_search_events
JOIN clicked_cnt
JOIN unClicked_cnt;
1. clicked = 1 의 top3 count
2. clicked = 0 의 top3 count
3. 전체 1, 2번을 전체 카운트와 나눠 100을 곱해 비율 구하기