최대 1 분 소요

문제 링크

정답

SELECT name Employee
FROM Employee e
WHERE salary > (
    SELECT salary
    FROM Employee m
    WHERE e.managerId = m.id
)

✅ Point

  • SubQuery로 e.managerId = m.id일 때의 급여를 가져와 비교
  • 🔴 단, Subquery는 각 row마다 SubQuery를 실행할 가능성이 있어 일반적으로 JOIN보다 더 느림
    • JOIN 은 한 번만 수행이 되어서 일반적으로 더 빠름

다른 풀이

  • JOIN을 이용한 풀이
    SELECT e.name Employee
    FROM Employee e
    JOIN Employee m
    ON e.managerId = m.id AND e.salary > m.salary;