inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

GROUP BY 해커랭크 문제풀이

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

252

David Jusuk Um

작성한 질문수 2

0

SELECT Salary * Months AS "Earnings",

       MAX(Earnings) AS "MAX_Earnings",

       COUNT(MAX_Earnings)

FROM Employee

sql

답변 1

0

이보민

안녕하세요 David Jusuk Um님

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

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

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

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

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

감사합니다.

리트코드 1280. Students and Examinations

0

91

3

16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문

0

103

2

African Cities 문제관련 질문

0

64

1

SQL 코딩테스트 질문

0

231

1

HACKER RANK에서 문제찾기

0

107

2

강의 자료 다운로드

0

101

2

Asian population 문제가 없어요

0

86

2

INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'

0

75

2

별칭 관련해서 질문 있습니다.

0

88

2

rising temperature 문제 질문

0

104

2

해커랭크 TOP EARNERS 문제 질문

0

110

1

ON 뒤에 질문

0

105

2

INNER JOIN 질문. 강의와 결과값이 다릅니다.

0

209

3

END, 뒤에 * 붙이면 에러가 뜹니다

1

212

2

CustomerID가 중복되서 나타나요

0

241

3

별칭이 전체 테이블을 못 불러와요.

0

151

2

CASE WHEN 쿼리 오류 문의

1

338

3

CASE문제풀이 질문

0

131

1

Customers Who Never Order 풀다가 Alias관련 질문사항

0

141

1

Average Population 질문

0

142

1

Revising Aggregations - The Count Function 질문

0

108

1

Average Population of Each Continent 에대해서 질문

0

199

3

w3schools 에서 쿼리 작성 질문

0

166

1

INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?

0

332

1