강의

멘토링

커뮤니티

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

김윤정님의 프로필 이미지
김윤정

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 고급 SQL

[심화] 서브쿼리 해커랭크 Challenges 문제풀이 + With statement

max 값을 정의할 때, SELECT를 통해서 한번 더 구해주는 이유가 궁금합니다.

작성

·

1.2K

1

안녕하세요.

이번 강의 내용 중 문의드릴 내용이 있습니다.

having절 또는 where절에서 challenges_created의 최대값에 대해 정의를 하는 함수를 짤 때,

whrere challenges_created = max(challenges_created)가 아닌

whrere challenges_created = (SELECT max(challenges_created) FROM counter) 인 이유가 궁금합니다.

max값을 구할 때는 반드시 다시 서브쿼리를 통해 추출을 해야하는건지요?

답변 1

0

송혜정님의 프로필 이미지
송혜정
지식공유자

안녕하세요 김윤정님, 답변 드립니다.

WHERE절에서는 집계함수를 사용할 수 없고, HAVING 절에서는 집계함수를 사용할 수 있습니다.
따라서 서브쿼리를 사용하여 최대값을 불러오고, challenges_created 에서 같은 값을 찾는 방식으로 쿼리를 작성하였습니다. 본 내용과 관련한 링크를 첨부하니 참고해주세요 :)

https://stackoverflow.com/questions/3284409/use-mysql-sum-in-a-where-clause

김윤정님의 프로필 이미지
김윤정

작성한 질문수

질문하기