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;