기초 튼튼/코테준비
[코테준비] SQL 해커랭크(HackerRank) 문제풀이 - 피벗 - 6
JoeSung
2020. 5. 16. 21:50
* 코딩인터뷰시 기업들에서 널리 활용중인 해커랭크(HackerRank)의 SQL 문제 정리.
1. 문제
- SQL 쿼리를 통해 피벗테이블을 구성하라는 문제이다.
- 주어진 테이블에는 각 직업별 사람의 이름과 그의 직업이 저장되어있다.
- 이를 통해 Doctor, Professor, Singer, Actor 순으로 피벗테이블을 작성하라는 문제
2. 정답
- rowNumber를 저장하는 temp 테이블을 따로 만들고, 이를 grouping 해주어 출력해야 하는 문제
- Medium 난이도 문제이지만 꽤나 까다롭다..
- SQL에서의 변수설정법 (Ex; set @variable = n)을 통해 rownumber를 세팅해주어야 하고,
- 각 직업의 rowNum별 이름을 피벗테이블에 알맞게 이전 temp테이블에서 지정해주어야 하고
- 이름 출력 순서를 서브쿼리 바깥에서 ordering 해주면 null이 가장 먼저 출력되기 때문에, 서브쿼리 내에서 ordering을 해준 뒤 바깥 서브쿼리에서는 그루핑만을 해주어야 하는 문제였기 때문이다.
- 서브쿼리 바깥에선 min으로 출력하건 max로 출력하건 큰 차이는 없어보인다.
- 애초에 rowNumber를 각 직업별로 1개씩만 출력될 수 있도록 temp 정제시에 세팅해두었기 때문이다.
3. 결과
해커랭크(HackerRank)의 'SQL for Interview'를 풀며 정리한 글입니다.
부족한 블로그에 방문해 주셔서 감사합니다.
잘못된 내용 수정 피드백은 댓글로 적어주세요.
감사합니다 :-)
반응형