문제 출처 : https://www.hackerrank.com/challenges/placements/problem
풀이 매크로
1. 문제 정의 : 별도의 문제정의 없음
2. 요구사항
- Friends 테이블의 두개의 키에 salary를 붙여 비교한다.
- 비교 후 Friend의 salary가 더 큰 사람들만 출력해라
- friend 기준으로 salary를 오름차순하여 student 테이블의 Name을 출력해라
코드
SELECT -- A.ID AS st_id
A.Name AS st_name
-- , B.Friend_ID AS fr_id
-- , S1.salary AS ID_salary
-- , S2.salary AS Fr_salary
FROM students AS A
INNER JOIN friends AS B ON A.ID = B.ID
INNER JOIN packages AS S1 ON A.ID = S1.ID
INNER JOIN packages AS S2 ON B.Friend_ID = S2.ID
WHERE (S1.salary < S2.salary)
ORDER BY S2.salary
주의해야할 점
- Friends에 두개의 키가 있고, 각각의 키에 맞는 salary를 붙여야 한다. 이때 붙였을때의 salary는 테이블이름(s2.salary)로 구분이 되므로 헛갈리지 않도록 AS를 이용해서 네이밍을 다시해주도록하자.
'SQL > 코딩테스트' 카테고리의 다른 글
[MySQL] SubQuery 활용법 (0) | 2024.11.11 |
---|---|
[MySQL] SUB쿼리를 굳이 쓰지 않아도 되는 경우 (0) | 2024.11.10 |
[MySQL] SQL 문제에서 문제정의방법 (1) | 2024.11.08 |
[MySQL] TRUNCATE와 WHERE 조건 범위 (0) | 2024.11.08 |
[MySQL] SUBSTR/REGEXP/LEFT/RIGHT 문자열 다루기 (1) | 2024.11.08 |