문제
검색 결과를 기반으로 두 개의 비율을 계산하세요. 먼저, 클릭된 기록들(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을 곱해 비율 구하기
'[코딩테스트] > [SQL]' 카테고리의 다른 글
[StrataScratch - SQL] (Medium) Acceptance Rate By Date (0) | 2025.05.13 |
---|---|
[StrataScratch - SQL] (Medium) Premium vs Freemium (0) | 2025.05.13 |
[StrataScratch - SQL] (Medium) Meta/Facebook Accounts (0) | 2025.05.09 |
[StrataScratch - SQL] (Medium) Risky Projects (0) | 2025.05.08 |
[StrataScratch - SQL] (Medium) New Products (0) | 2025.05.08 |