-
해커랭크 Placements (JOIN, 서브쿼리)Programing Language/SQL 2025. 6. 15. 23:58반응형
https://www.hackerrank.com/challenges/placements/problem
Placements | HackerRank
Write a query to output the names of those students whose best friends got offered a higher salary than them.
www.hackerrank.com
문제 정의 (영어 -> 한국어 번역 후 문제 파악하기)
학생 , 친구 , 패키지라는 세 개의 테이블이 있습니다. 학생 테이블은 ID와 이름이라는 두 개의 열을 포함합니다 . 친구 테이블은 ID 와 Friend_ID ( 가장 친한 친구의 ID ) 라는 두 개의 열을 포함합니다. 패키지 테이블은 ID 와 급여 (월급으로 제시되는 금액, 천 달러)라는 두 개의 열을 포함합니다 .
가장 친한 친구가 자신보다 더 높은 급여를 제안받은 학생들의 이름을 출력하는 쿼리를 작성하세요. 이름은 가장 친한 친구에게 제안된 급여를 기준으로 정렬해야 합니다. 두 학생이 같은 급여를 제안받지 않는다는 것이 보장됩니다.문제 접근
- 단계별 cte
- 학생 이름 출력
- 조건
- 가장 친한 친구가 자신보다 높은 급여를 받음
- 가장 친한 친구에게 제안된 급여를 기준으로 정렬
- 주의 : 친구 급여 기준이 없는데, 오름차순이 기준이었음
/* -- 학생 이름 출력 -- 조건 -- 가장 친한 친구가 자신보다 높은 급여를 받음 -- 가장 친한 친구에게 제안된 급여를 기준으로 정렬 -- 테이블 -- students : id, name -- friends : id, friend_id -- packages : id, salary */ -- id, 월급, 친구, 친구월급 테이블 생성 select s.name from friends f inner join students s on f.id = s.id inner join packages sp on f.id = sp.id inner join packages fp on f.friend_id = fp.id where sp.salary < fp.salary order by fp.salary
반응형'Programing Language > SQL' 카테고리의 다른 글
해커랭크 Binary Tree Nodes (CASE, 서브쿼리) (0) 2025.06.16 해커랭크 Weather Observation Station 20 (중앙값, 윈도우 함수) (0) 2025.06.16 해커랭크 Top Competitors (다중 JOIN, 필터링) (0) 2025.06.15 해커랭크 The Report (JOIN, CASE문, NULL 처리) (1) 2025.06.15 해커랭크 Contest Leaderboard (JOIN, GROUP BY, 조건부 집계) (1) 2025.06.15 - 단계별 cte