SQL 문제풀이 001 (pivot)

Hackerrank

Occupations

Hackerrank 에 있는 Pivot 문제를 풀어 보도록 하겠습니다.

문제해설
1. 위 그림과 같이 정의된 테이블을 pivot하여 직업별 컬럼으로 재구성하라
2.

  • 첫번째 컬럼: 의사
  • 두번째 컬럼: 교수
  • 세번째 컬럼: 가수
  • 네번째 컬럼: 배우
    3.이름이 NULL 인 경우 NULL 로 표기한다.
    4.이름을 알파벳 순으로 정렬하라.

STEP 1.

SELECT name
    ,occupation
    ,row_number()over(partition by occupation order by name)
FROM OCCUPATIONS;
    

STEP2.

SELECT
       MIN(CASE WHEN OCCUPATION = 'DOCTOR'THEN NAME ELSE NULL END) DOCTOR
      ,MIN(CASE WHEN OCCUPATION ='ACTOR'THEN NAME ELSE NULL END) ACTOR
      ,MIN(CASE WHEN OCCUPATION = 'SINGER' THEN NAME ELSE NULL END) SINGER
      ,MIN(CASE WHEN OCCUPATION = 'PROFESSOR'THEN NAME ELSE NULL END) PROFESSOR
FROM(
SELECT name
    ,occupation
    ,row_number()over(partition by occupation order by name) RN
FROM OCCUPATIONS)
GROUP BY RN
ORDER BY RN;

결과를 나타 낼 수 있다.

좋은 웹페이지 즐겨찾기