코딩테스트/코딩테스트 SQL

[HackerRank] Placements

sseozytank 2022. 9. 26.

✔️문제

https://www.hackerrank.com/challenges/placements/problem?isFullScreen=true 

 

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

 

 

✔️문제 요약

1. 가장 친한 친구가 그들보다 더 높은 급여를 제안받은 학생들의 이름 출력 

2. 이름은 가장 친한 친구들에게 제공된 급여 액수에 따라 정렬

3. 같은 급료는 없다

 

 

✔️풀이 방법

1. 나의 아이디, 나의 이름, 나의 연봉, 친한친구의 아이디 테이블 구성 as mine

    select S.ID,Name, Salary as my_sal, Friend_ID 
    from Students S 
    join Friends F on S.ID = F.ID 
    join Packages P on S.ID = P.ID

2.친한 친구의 연봉이 나의 연봉보다 크면 나의 이름 출력

3.친한 친구의 연봉 순 

select Name 
from (
    select S.ID,Name, Salary as my_sal, Friend_ID 
    from Students S 
    join Friends F on S.ID = F.ID 
    join Packages P on S.ID = P.ID 
)as mine
join Packages P on mine.Friend_ID=P.ID
where mine.my_sal < P.Salary
order by P.Salary

 

✔️고찰 

- from 절 안에 내가 쓸 테이블을 서브쿼리로 넣어주면 되는건데 with절만 쓰니 자꾸 헷갈린다. 계속계속 익숙해지기! 

'코딩테스트 > 코딩테스트 SQL' 카테고리의 다른 글

[HackerRank] The Blunder  (0) 2022.08.23
[HackerRank] Contest Leaderboard  (0) 2022.08.23
[HackerRank] Top Competitors  (1) 2022.08.22

댓글