일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- MYSQL
- pandas
- Codestates
- 주간보고
- 꾸준히
- 빅데이터
- 자료구조
- selenium
- 열심히
- python
- 기초통계
- 부트캠프
- 독서
- 매일매일
- SQL
- 노마드코더
- yolo
- 리뷰
- bootcamp
- 코딩테스트
- leetcode
- 성실히
- 2021
- 딥러닝
- 재미져
- JavaScript
- 코드스테이츠
- 선형회귀
- Ai
- 파이썬
- Today
- Total
코딩일기
[HackerRank] SQL 코딩테스트 준비 2day(feat. tips 및 복습) 본문
안녕하십니까 다제입니다.
오늘은 SQL 복습 2일차 입니다. 오늘도 HackerRank에서 문제를 풀어보았는데요
함께 살펴보도록 하시죠!
2021.10.19 - 2day
3. Occupations
- 문제의 해석 : 이름과 직업으로 구성된 컬럼을 직업 기준으로 재구성하는 문제입니다.
- 선정한 이유 : SQL에서 Pivot table을 만들 수 있는지를 체크하기 위해서 선정하였습니다.
- 접근방식 : RowNumber를 활용하여 각 그룹별 넘버링을 한 후 넘버링으로 group by 하여 풀었습니다.
- 링크 : https://www.hackerrank.com/challenges/occupations/problem
- 코드
set @r1=0, @r2=0, @r3=0, @r4=0;
select min(Doctor), min(Professor), min(Singer), min(Actor)
from(
select case when Occupation='Doctor' then (@r1:=@r1+1)
when Occupation='Professor' then (@r2:=@r2+1)
when Occupation='Singer' then (@r3:=@r3+1)
when Occupation='Actor' then (@r4:=@r4+1) end as RowNumber,
case when Occupation='Doctor' then Name end as Doctor,
case when Occupation='Professor' then Name end as Professor,
case when Occupation='Singer' then Name end as Singer,
case when Occupation='Actor' then Name end as Actor
from OCCUPATIONS
order by Name
) temp
group by RowNumber;
4. Binary Tree Nodes
- 문제의 해석 : 트리 노드 정보를 담고 있는 테이블에서 각각의 row가 어디에 해당하는지를 가려내는 문제입니다.
- 선정한 이유 : 트리에 대한 이해와 SQL조건문을 다룰 수 있는지를 확인 할 수 있는 문제여서 선정하였습니다.
- 접근방식 : P에 null이 있다면 그것은 루트노드로 간주 할 수 있고, n에 있는 값이 P 있다면 inner 노드라고 간주할 수 있다는 아이디어로 접근하였습니다.
- 링크 : https://www.hackerrank.com/challenges/binary-search-tree-1/problem
- 코드
select
case when P is null then concat(N, ' Root')
when N in (select distinct P from bst) then concat(N, ' Inner')
else concat(N, ' Leaf') end
from bst
ORDER BY N ASC
링크도 함께 공유하였으니 여러분도 꼭 함께 풀어 보시고 제가 푼 방법보다 좋은 방법이 있다면 댓글로 공유 부탁드립니다.
감사합니다.
'Code > SQL' 카테고리의 다른 글
[HackerRank] SQL 코딩테스트 준비 4day(feat. tips 및 복습) (0) | 2021.10.29 |
---|---|
[HackerRank] SQL 코딩테스트 준비 3day(feat. tips 및 복습) (0) | 2021.10.20 |
[HackerRank] SQL 코딩테스트 준비 1day(feat. tips 및 복습) (0) | 2021.10.18 |
[SQL] all? 너는 누구? (feat. MySQL, pgSQL) (0) | 2021.10.14 |
[SQL] 5. 최적화 원리 이해하기 (2) | 2021.05.31 |