강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

zealot5206 のプロフィール画像
zealot5206

投稿した質問数

非専門家でも理解できるMySQL性能最適化入門/実践(SQLチューニング編)

【実践】特定の部署で最高年収を持つユーザーを検索するSQL文をチューニングする

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

作成

·

234

·

編集済み

4

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

 

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

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

전체 부서에서 최대 연봉이 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 초보라 양해 해주시면 감사하겠습니다 ... 

 

 

 

 

 

 

 

sqlmysqldbms/rdbmsquery-tuning

回答 1

1

jscode님의 프로필 이미지
jscode
インストラクター

안녕하세요 광전사님!

 

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

 

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

 

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

zealot5206 のプロフィール画像
zealot5206

投稿した質問数

質問する