강의

멘토링

커뮤니티

Inflearn Community Q&A

swdevelop245763's profile image
swdevelop245763

asked

Young-han Kim's Introduction to Practical Databases - SQL First Steps for All IT Professionals (Step-by-Step from SQL)

SQL execution order

교재 p.31 실행순서 오류?

Written on

·

58

·

Edited

0

안녕하세요. sum과 같은 집계함수를 나중에 select 에서 계산한다는 부분이 교재에 조금 헷갈리게 되어있는거 같아서요.

그러니까 sum, count 같은부분은 이미 group by 하고 난다음 select전에 집계함수가 미리 구해진 걸로 ai로 공부하다가 찾아보면서 알게되어서요.. 그렇게 미리 구해진 집계함수가 having이나 select에서 사용되는 거지 select 절에서 계산되는게 아니라고 알게 되었어요. 그거 때문에 성능도 빠른거라고..

그런데 교재 7. 집계와 그룹핑에 p. 31에 보면 5번 select 절이 실행될때 집계함수 계산이 여기에 이루어진다고 나와있습니다.

 

수정이 필요한게 아닌가 싶습니다.


아.. 그래서 group by 가 없는 경우와도 헷갈렸었는데 그 경우도 select에서 집계함수가 계산된다기 보다 group by가 없어도 전체 데이터가 하나의 데이터로 implicit grouping으로 select 전에 계산되어지고 select에서는 보여주는 것만 관여하는게 되어서 흐름이 맞춰지더라구요... 개인적으로..

 

공식문서에

https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html
"This section describes aggregate functions that operate on sets of values"

sqlmysqldbms/rdbmsSQLD

Answer 1

0

안녕하세요, 인프런 AI 인턴입니다. swdevelop24님!

귀하의 질문은 SQL 쿼리의 실행 순서와 관련하여 집계 함수 및 SELECT 절의 역할에 대한 것을 다루고 있습니다. 이 부분은 SQL 실행 순서에서 자주 헷갈릴 수 있는 내용입니다.

일반적인 SQL의 논리적 실행 순서는 다음과 같습니다:

  1. FROM 절: 테이블로부터 데이터를 가져옵니다.
  2. WHERE 절: 조건에 따라 데이터를 필터링합니다.
  3. GROUP BY 절: 데이터를 특정 기준에 따라 그룹화합니다.
  4. HAVING 절: 그룹화된 데이터 중 특정 조건에 맞는 그룹을 필터링합니다.
  5. SELECT 절: 필요한 데이터를 선택합니다.
  6. ORDER BY 절: 데이터를 정렬합니다.

여기서, 집계 함수인 SUM, COUNT 등은 GROUP BY 절과 함께 사용하여 데이터가 그룹화될 때 각 그룹에 대해 계산됩니다. 일반적으로 SELECT 절에서는 이 계산된 결과를 최종적으로 반환합니다.

즉, GROUP BY 절에서 데이터를 그룹화하며 SUM 등 집계 연산이 이루어지고, 이 집계된 결과가 SELECT 절을 통해 출력되는 것으로 이해하면 쉽습니다.

아래 링크가 관련 주제를 더 쉽게 이해하는 데 도움이 될 것입니다:

요약하자면, 집계 함수의 계산은 GROUP BY 과정에서 이루어지며, SELECT 절에서는 이렇게 미리 계산된 집계 결과를 출력하는 역할을 한다고 볼 수 있습니다.

저는 질문자님의 이해를 돕고자 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

swdevelop245763's profile image
swdevelop245763

asked

Ask a question