inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Thực hành là trên hết] SQL trung cấp cho phân tích dữ liệu

Giải bài tập HackerRank về GROUP BY

해설내용에서 함수의 실행순서 질문드립니다

412

goldsurfer

21 câu hỏi đã được viết

0

SELECT months * salary AS earnings, COUNT(*)

FROM Employee

GROUP BY earnings

ORDER BY earnings DESC

LIMIT 1;

 

위의 SELECT 문 내에서,

months * salary AS earnings 부분은 먼저 실행이 되어, 밑의 GROUP BY 나 ORDER BY 등에 영향을 미치는데, 

 

COUNT(*) 는 LMIT 1까지 모두 적용이 된 이후의 결과값을 카운팅 하는 이유가 뭔가요?

집계함수는 항상 최종적인 결과값에 대해 적용이 되는 건가요?

 

sql

Câu trả lời 2

1

bomin

안녕하세요 이상현님

전달주신 쿼리의 실행 순서는 FROM -> GROUP BY  -> SELECT -> ORDER BY -> LIMIT 순 입니다.

만약 LIMIT 1까지 모두 적용이 된 후의 결과를 카운팅 해주는 방식으로 쿼리가 작동된다면 내부에 데이터 값이 몇개든 상관 없이 COUNT(*)의 결과는 1로 고정되어야 하는데요. 쿼리 결과는 그렇게 나오지는 않습니다. 결과값을 다시 한 번 천천히 확인해보시면 좋을 것 같습니다.

쿼리 순서와 관련한 참고 자료를 첨부드립니다.

0

goldsurfer

아 그렇군요,. 잘못 생각했네요

답변 감사합니다!^^

리트코드 1280. Students and Examinations

0

74

3

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

0

89

2

African Cities 문제관련 질문

0

53

1

SQL 코딩테스트 질문

0

206

1

HACKER RANK에서 문제찾기

0

94

2

강의 자료 다운로드

0

90

2

Asian population 문제가 없어요

0

76

2

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

0

65

2

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

0

78

2

rising temperature 문제 질문

0

98

2

해커랭크 TOP EARNERS 문제 질문

0

98

1

ON 뒤에 질문

0

94

2

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

0

196

3

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

1

203

2

CustomerID가 중복되서 나타나요

0

232

3

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

0

142

2

CASE WHEN 쿼리 오류 문의

1

324

3

CASE문제풀이 질문

0

124

1

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

0

136

1

Average Population 질문

0

128

1

Revising Aggregations - The Count Function 질문

0

103

1

Average Population of Each Continent 에대해서 질문

0

191

3

w3schools 에서 쿼리 작성 질문

0

158

1

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

0

328

1