본문 바로가기
HackerRank - MS SQL Server

[해커랭크/MS SQL] Occupations

by nomeleon 2022. 3. 24.
반응형

문제 링크입니다!

 

Occupations | HackerRank

Pivot the Occupation column so the Name of each person in OCCUPATIONS is displayed underneath their respective Occupation.

www.hackerrank.com

 

문제

 

=> 각 이름을 알파벳 순으로 정렬하고 해당 직업 아래에 표시되도록 직업 열을 피벗해라.

출력 열 머리글은 각각 Doctor, Professor, Singer, and Actor여야 한다.

참고: 직업에 해당하는 이름이 더 이상 없을 경우 NULL을 출력해라.


 

풀이

SELECT 
    [Doctor],[Professor],[Singer],[Actor]
FROM
    (
    SELECT ROW_NUMBER() OVER (PARTITION BY OCCUPATION ORDER BY NAME) [RowNumber], * FROM OCCUPATIONS
    ) AS tempTable
PIVOT
    (
    MAX(NAME) FOR OCCUPATION IN ([Doctor],[Professor],[Singer],[Actor])
    ) AS pivotTable

 

 

ROW_NUMBER(Transact-SQL) - SQL Server

ROW_NUMBER 함수의 Transact-SQL 참조입니다. 이 함수는 결과 집합의 출력 번호를 매깁니다.

docs.microsoft.com

 

PIVOT 및 UNPIVOT 사용 - SQL Server

PIVOT 및 UNPIVOT 관계형 연산자의 Transact-SQL 참조입니다. SELECT 문에 해당 연산자를 사용하여 테이블 반환 식을 다른 테이블로 변경할 수 있습니다.

docs.microsoft.com

 

댓글