[SQL] Occupation 문제 풀이 1

한예은·2025년 4월 6일
0

코딩 테스트

목록 보기
20/49
post-thumbnail

후기

SQL에서 조인과 피벗만 잘하면 된다는 현직자(대학원 동기) 말을 들었을 때는 별거 아니네 했는데 막상 내가 풀면 음...
이제 이정도 쿼리는 눈 감고도 하는 내가 되었으면 좋겠다.
이제 sqld 자격증 준비하면서 쌓았던 지식도 소진되는 것 같고, 꾸준히 하는 것 말고는 답이 없다!

문제


풀이

SELECT
    MAX(CASE WHEN Occupation = 'Doctor' THEN Name ELSE NULL END) AS Doctor,
    MAX(CASE WHEN Occupation = 'Professor' THEN Name ELSE NULL END) AS Professor,
    MAX(CASE WHEN Occupation = 'Singer' THEN Name ELSE NULL END) AS Singer,
    MAX(CASE WHEN Occupation = 'Actor' THEN Name ELSE NULL END) AS Actor
FROM (
    SELECT 
        Name,
        Occupation,
        ROW_NUMBER() OVER (PARTITION BY Occupation ORDER BY Name) AS rn
    FROM OCCUPATIONS
) AS sorted
GROUP BY rn;
profile
긴 여정의 첫 걸음

0개의 댓글