HackerRank | Placements

jeonghens·2025년 1월 9일
0

SQL: HackerRank

목록 보기
10/49

HackerRank Placements


JOIN 연산을 통해 세 테이블을 연결해야 하는데, 다음과 같은 순서로 연산을 수행했다.
[1] 각 학생의 급여를 구한다. (JOIN Packages AS P_M ON S.ID = P_M.ID)
[2] 각 학생의 친구를 구한다. (JOIN Friends AS F ON S.ID = F.ID)
[3] 친구의 급여를 구한다. (JOIN Packages AS P_F ON F.Friend_ID = P_F.ID)

이후 WHERE 절을 통해 '학생 급여 < 친구 급여'를 만족하는 데이터만 필터링하고, 친구 급여를 출력하면 된다.


SELECT
    S.Name
FROM
    Students AS S
        JOIN Packages AS P_M ON S.ID = P_M.ID
        JOIN Friends AS F ON S.ID = F.ID
        JOIN Packages AS P_F ON F.Friend_ID = P_F.ID
WHERE
    P_M.Salary < P_F.Salary
ORDER BY
    P_F.Salary ASC;
profile
알고리즘이나 SQL 문제 풀이를 올리고 있습니다. 피드백 환영합니다!

0개의 댓글