쉽게 쉽게

[HackerRank] Placements 본문

문제풀이/HakerRank

[HackerRank] Placements

곱마2 2023. 7. 3. 22:55
반응형

1. 문제

해석

  • 자신보다 자신의 베스트 프렌드가 더 높은 급여를 받는 학생들의 이름을 추출
  • 이름은 베스트 프렌드의 급여로 정렬(오름차순)
  • 급여가 중복되는 일은 없음

2. 풀이

1. 테이블을 조인하여 필요한 정보 추출

(학생 id, 학생 이름, 학생 급여, 베스트 프렌드)

SELECT s.ID, s.name, p.salary as my_salary , f.friend_id FROM Students s 
JOIN Packages p on s.ID = p.ID
JOIN Friends f on p.ID = f.ID;

 

2. 베스트 프렌드의 급여정보 추출

SELECT result.name FROM(
SELECT s.ID, s.name, p.salary as my_salary , f.friend_id FROM Students s 
JOIN Packages p on s.ID = p.ID
JOIN Friends f on p.ID = f.ID
) result
JOIN Packages p ON result.friend_id = p.id;

3. 베스트 프렌드 급여가 나의 급여보다 높은 경우 추출

SELECT result.name FROM(
SELECT s.ID, s.name, p.salary as my_salary , f.friend_id FROM Students s 
JOIN Packages p on s.ID = p.ID
JOIN Friends f on p.ID = f.ID
) result
JOIN Packages p ON result.friend_id = p.id
WHERE p.salary > result.my_salary;

4. 정렬

SELECT result.name FROM(
SELECT s.ID, s.name, p.salary as my_salary , f.friend_id FROM Students s 
JOIN Packages p on s.ID = p.ID
JOIN Friends f on p.ID = f.ID
) result
JOIN Packages p ON result.friend_id = p.id
WHERE p.salary > result.my_salary
ORDER BY p.salary;
잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다.

 

 

 

반응형

'문제풀이 > HakerRank' 카테고리의 다른 글

[HackerRank] The PADS  (0) 2023.07.19
[HackerRank] Symmetric Pairs  (0) 2023.07.09
[HackerRank] Challenges  (0) 2023.07.01
[HackerRank] Top Competitors  (0) 2023.06.25
[HackerRank] The Report  (0) 2023.06.21