[코딩테스트]/[SQL]

[StrataScratch - SQL] (Medium) Apple Product Counts

잰잰' 2025. 5. 29. 11:24

문제

우리는 사용자 데이터 분석을 통해 적어도 한 번의 이벤트를 수행한 사용자들 사이에서 Apple 기기의 인기도를 이해하려고 합니다. 구체적으로, 다양한 언어별로 이 인기도를 측정하고자 합니다. "macbook pro", "iphone 5s", "ipad air"를 사용하는 Apple 기기 사용자 수를 세고, 각 언어별 전체 사용자 수와 비교해주세요.

결과는 언어, Apple 기기 사용자 수, 각 언어별 전체 사용자 수를 포함하여 출력하세요. 마지막으로, 전체 사용자 수가 많은 언어부터 결과가 정렬되도록 하세요.

 

테이블설명

예상결과

 

✏️ 풀이

SELECT language,
    COUNT(DISTINCT
            CASE
                WHEN device = 'macbook pro' OR device = 'iphone 5s' OR device = 'ipad air' THEN e.user_id
                END) AS n_apple_user,
    COUNT(DISTINCT e.user_id) AS n_total_users
FROM playbook_events AS e
JOIN playbook_users AS u ON e.user_id = u.user_id
GROUP BY 1
ORDER BY 3 DESC;

1. "macbook pro", "iphone 5s", "ipad air"를 사용하는 유저 카운트

2. 전체 유저 카운트

 

# 주의할점 #

중복되는 user_id가 존재하므로 DISTINCT로 중복 제거 필수