OCCUPATIONS
https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true
Occupations | HackerRank
Pivot the Occupation column so the Name of each person in OCCUPATIONS is displayed underneath their respective Occupation.
www.hackerrank.com


샘플 예시처럼 그룹별 이름을 수직으로 출력
내가 쓴 답:
WITH A AS (
SELECT
ROW_NUMBER() OVER(PARTITION BY Occupation ORDER BY Name) AS Num,
Name,
Occupation
FROM OCCUPATIONS
)
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 A
GROUP BY Num ;
1. 우선 직업 별로 순번 매겨주는 + 그룹으로 묶을 수 있게 : row_number
2. MAX랑 CASE WHEN 이용해서 가로 데이터를 세로로 출력
(MAX를 쓰는 이유 : 안 쓰고 CASE WHEN만 사용할 경우 해당하는 그룹값 외 null 값이 출력되는 것을 정리 + 오류 방지) → 최댓값 의미가 아니라 한 개의 값으로 축약하는 용도 (MIN도 사용가능)
처음에 WITH A "AS" → 이거 빼먹어서 오류 계속 남^^.. 결국 지피티 돌려버림 ㅎ
'SQL > 문제' 카테고리의 다른 글
| SQL | Challenges (중복값 조건에 맞춰서 제거) (4) | 2025.08.22 |
|---|---|
| SQL | QCC 6회차 (0) | 2025.03.14 |
| SQL | QCC 5회차 (0) | 2025.02.28 |
| SQL | QCC 4회차 (0) | 2025.01.21 |
| SQL | Binary Tree Nodes, New Companies (0) | 2025.01.17 |