window function:
SELECT WINDOW_FUNCTION (ARGUMENTS) OVER ( [PARTITION BY 칼럼]] [ORDER BY 절] [WINDOWING 절] ) FROM 테이블 명;
정답 코드
출처 : https://didu-story.tistory.com/95
SELECT
MAX(CASE WHEN Occupation = 'Doctor' THEN Name END) AS 'Doctor',
MAX(CASE WHEN Occupation = 'Professor' THEN Name END) AS 'Professor',
MAX(CASE WHEN Occupation = 'Singer' THEN Name END) AS 'Singer',
MAX(CASE WHEN Occupation = 'Actor', THEN Name END) AS 'Actor',
FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY OCCUPATION ORDER BY NAME) RN
FROM OCCUPATIONS) TEMP
GROUP BY RN;
ROW_NUMBER 함수
RANK나 DENSE_RANK 함수가 동일한 값에 대해서는 동일한 순위를 부여하는데 반해, 동일한 값이라도 고유한 순위를 부여한다.