HAVING절에서 IN 사용 가능 여부
176
작성한 질문수 10
안녕하세요.
리트코드 184. Department Highest Salary 관련 질문드립니다.
이 문제를 HAVING절 서브쿼리를 활용해서 풀 때,
풀리지 않는 이유가 궁금합니다.
FROM절 서브쿼리 활용한 풀이는 이해를 했는데,
아래 HAVING절 서브쿼리로 왜 안 풀리는지도 궁금합니다..!
아래 풀이처럼 HAVING절에 IN을 쓰면 안 되는건가요?
SELECT d.name AS Department
, e.name AS Employee
, e.salary AS Salary
FROM employee e
INNER JOIN department d ON e.departmentid = d.id
GROUP BY d.name
HAVING e.salary IN (SELECT MAX(salary) FROM employee)
선미님이 수업시간에 다뤄주셨던 질문인데, 다시 풀어보니까 기억이 안 나서... 재질문 드립니다.
답변 1
2
안녕하세요 유빈님, 답변 드립니다.
우선 HAVING절에 IN을 쓰는 것은 가능하며, 작성해주신 쿼리를 살펴보겠습니다.
유빈님의 쿼리에서 HAVING절 이전, 즉 GROUP BY 절 까지 실행을 해보면 아래와 같이 결과가 나옵니다. (Output 참고)
Output 상태에서 HAVING절의 내용이 실행되는데, HAVING절에서 IN 다음의 (SELECT MAX(salary) FROM employee) 서브쿼리의 결과는 90000입니다. 하지만 Output 으로 확인 할 수 있듯, GROUP BY 절 까지의 결과(Output)에서는 salary가 90000인 데이터가 없기 때문에 첨부해주신 사진과 같이 Output에 아무 결과도 나오지 않게 됩니다.
답변 내용이 도움이 되었길 바라며, 추가 문의 사항이 있다면 언제든 남겨주세요 :)
순위 함수 연습 문제 - 스테디셀러 작가 찾기
0
85
1
문제 내용이 잘못된 것 같습니다.
0
57
2
서브쿼리 질문
0
59
2
[수업질문] 서브쿼리 > null데이터 avg사용 주의
0
72
1
서브쿼리는 언제 작성하는건가요?
0
67
1
안녕하세요 질문드립니다.
0
66
2
Top Earners 문제관련 질문
0
96
2
고급반 cheetsheet
0
146
2
196. Delete Duplicate Emails 좋은 코드 질문
0
140
1
a.id = 1과 b.id=1이 없어도 되는 이유
0
125
0
강의 플랫폼
0
197
3
리트코드 177번 function 풀이중 case when 활용을 위한 서브쿼리 구문을 제출 시 검증에 통과되지 않도록 보강된 듯 하네요
0
204
2
ERD 읽는법에 추가 질문 있어요
0
249
1
lead, lag로 풀이할 시 id 값이 존재하지 않는 경우의 오답
0
355
2
사용자정의함수
0
230
1
이 문제 inner join이 이해가 안됩니다.
0
294
1
평균 함수 사용할 때 주의점과 해결법
0
259
1
196. subquery로 풀 때, 궁금한 점
0
382
2
쿼리성능 질문드립니다.
0
312
1
리트코드 highest department salary 문제
0
257
2
The report 문제 order by부분 질문
0
269
2
리트코드 서브쿼리 문제 질문
0
420
1
DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의
0
235
1
서브쿼리의 활용사례 및 조인관련질문
0
282
1





