작성
·
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 고급반 커리큘럼 또는 인터넷 검색시 찾아보실 수 있는 내용이므로 참고 부탁드립니다.
설명이 이해가 안되신다면 추가 질문 올려주세요.
감사합니다.