인프런 커뮤니티 질문&답변

광전사님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

[실습] 특정 부서에서 최대 연봉을 가진 사용자들 조회하는 SQL문 튜닝하기

특정 부서에서 최대 연봉을 가진 사용자 조회 sql 쿼리 질문

24.08.08 11:43 작성

·

107

·

수정됨

2

안녕하세요, 좋은 강의 감사합니다.

 

제공해 주신 쿼리에 대해 질문이 있는데요,

제 생각에는 아래 쿼리가 특정 부서에서 최대 연봉을 가진 사용자를 조회하는게 아닌,

전체 부서에서 최대 연봉이 x 라고 하면,

세 부서에서 그 값이 있으면 출력하는 문인것 같은데,

제가 어느 부분에서 헷갈린 건지 알려주시면 감사하겠습니다.

SELECT *
FROM users
WHERE salary = (SELECT MAX(salary) FROM users)
AND department IN ('Sales', 'Marketing', 'IT');

 

SELECT MAX(salary) FROM users 는 users 테이블의 최대 salary 를 가져오는것이고,

괄호 밖의 department In (...) 은 부서 세개,

그리고 salary = (SELECT MAX ...) 와 함께 저 salary 에 해당 하는 users 가져오는 것이 아닌가요?

 

제가 sql 초보라 양해 해주시면 감사하겠습니다 ... 

 

 

 

 

 

 

 

답변 1

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

2024. 08. 08. 12:16

안녕하세요 광전사님!

 

광전사님이 말씀해주신 내용을 보니 정확하게 이해하신 것 같습니다!
제가 조금 오해의 소지가 있게 설명을 한 것 같군요ㅎㅎ

 

SQL의 의미를 정확히 해석하자면
Sales, Marketing, IT의 부서에서 '전체 부서의 최대 연봉 값과 같은 사용자들'을 출력하는 SQL입니다.

 

이 외로 또 헷갈리시는 부분 있으시면 질문 남겨주세요~~~