작성
·
120
·
수정됨
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
안녕하세요 광전사님!
광전사님이 말씀해주신 내용을 보니 정확하게 이해하신 것 같습니다!
제가 조금 오해의 소지가 있게 설명을 한 것 같군요ㅎㅎ
SQL의 의미를 정확히 해석하자면
Sales, Marketing, IT의 부서에서 '전체 부서의 최대 연봉 값과 같은 사용자들'을 출력하는 SQL입니다.
이 외로 또 헷갈리시는 부분 있으시면 질문 남겨주세요~~~