[SQL Runday] HackerRank - Placements
학생들 중 베프들이 자신보다 더 높은 연봉을 제안 받은 학생들의 이름을 출력하는 쿼리를 작성해라.
- 베프들이 제안받은 연봉 순대로 정렬해라
- 동일한 연봉을 제안 받은 학생들은 없음
Table
Students, Friends, Packages
Key points
-
이 문제는 외래키가 겹치는 테이블들을 연속해서 옆으로, 옆으로 붙여서 해결하는 쉬운 문제!
-
Friends 테이블을 기준으로 연속 3번
left join
을 통해 해결할 수 있다.select * from Friends
의 output
-
students 테이블을 한번 left join해서 ID의 이름을 가져오고
-
salary 테이블을 조인해서 자신 기준의 샐러리를 가져오고
-
salary 테이블을 다시 조인해서 friend의 샐러리를 가져온다.
-
마지막으로 where 조건으로 내 친구가 나보다 많이 받는 경우만 조회하고,
-
친구 연봉 기준으로 정렬한다. (뭔가 좀 슬프다.)
최종 쿼리
select s.name
from friends f
left join students s on s.id = f.id
left join packages p on p.id = s.id
left join packages p1 on f.friend_id = p1.id
where p1.salary > p.salary
order by p1.salary
Author And Source
이 문제에 관하여([SQL Runday] HackerRank - Placements), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@honeybeat1/SQL-Runday-HackerRank-Placements저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)