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

David Jusuk Um님의 프로필 이미지
David Jusuk Um

작성한 질문수

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

GROUP BY 해커랭크 문제풀이

AS를 사용한 쿼리문 작성이 뭐가 틀렸는지 모르겠어요

작성

·

216

0

SELECT Salary * Months AS "Earnings",

       MAX(Earnings) AS "MAX_Earnings",

       COUNT(MAX_Earnings)

FROM Employee

답변 1

0

이보민님의 프로필 이미지
이보민
지식공유자

안녕하세요 David Jusuk Um님

에러메세지를 첨부해주시지 않아 쿼리로만 확인했을 때에는 SELECT 문에서 연산되지 않은 결과를 불러오려고 하신 것이 문제가 된 것 같습니다.

SELECT 문에서 콤마로 구분된 항목들은 순차적으로 계산되는 것이 아니라, 동시에 연산되는 것으로 생각 해주셔야합니다. 즉, SELECT문 내에서 Earnings 데이터가 먼저 정의되었다고 해서 그 다음 항목에서 MAX(Earnings)처럼 Earnings로 정의한 데이터를 바로 불러와서 쓸 수는 없습니다. 하나의 SELECT문 내에 있는 여러개의 항목들은 한꺼번에 처리가 되기 때문이에요.

마찬가지의 이유로 MAX_Earnings 데이터를 SELECT문에 정의해주셨다고 해서 그 뒤에 바로 COUNT(MAX_Earnings)와 같이 연산한 데이터를 바로 사용할 수는 없습니다.

만약 SELECT 문으로 불러온 결과에 대해 추가적인 연산을 진행하고 싶은 경우에는 서브쿼리라는 것을 사용할 수 있습니다. 관련 내용은 SQL 고급반 커리큘럼 또는 인터넷 검색시 찾아보실 수 있는 내용이므로 참고 부탁드립니다.

설명이 이해가 안되신다면 추가 질문 올려주세요.

감사합니다.

David Jusuk Um님의 프로필 이미지
David Jusuk Um

작성한 질문수

질문하기