Inflearn brand logo image

Inflearn Community Q&A

No author

This post's author information has been deleted.

Kim Younghan's Practical Database Introduction - SQL First Steps for All IT Professionals (Step by Step from SQL)

GROUP BY - Grouping

GROUP BY 강의 중 ORDER BY에 관한 질문

Written on

·

29

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
46. GROUP BY - 그룹으로 묶기 강의 중 그룹으로 묶은 뒤 집계 함수를 사용한 컬럼을 기준으로 정렬하는 내용에 질문이 있습니다.

ORDER BY에 총 구매 금액 이라는 alias로 지정한 컬럼명을 사용해도 되고, sum(price * quantity)로 SELECT 절에서 사용한 집계함수를 다시 사용해서 정렬해도 된다고 설명해주셨습니다.

만약 집계함수를 사용했을 땐 계산을 또 해야하고, 컬럼명을 사용했을 땐 컬럼을 참조만 한다면 성능에 차이가 생기지 않을까라는 생각이 들었습니다.

ORDER BY 절에 집계함수를 사용하는 것과 컬럼명을 사용하는 것의 동작 원리가 같은지, 성능상의 차이가 있는지 궁금합니다.

sqlmysqldbms/rdbmsSQLD

Answer 1

1

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

GROUP BY 강의에서 집계 함수를 사용한 컬럼으로 정렬할 때 ORDER BY에서 alias를 사용하는 방법과 직접 다시 집계 함수를 사용하는 방법의 성능 차이에 대한 질문을 주셨습니다.

  1. 대부분의 RDBMS에서의 동작 원리:

    • ORDER BY 절에서 컬럼명을 사용할 때, 대부분의 RDBMS는 SELECT 절에서 이미 계산된 집계 함수 결과를 사용합니다. 이는 한번 계산된 결과를 재사용하는 방식이라 별도의 계산은 필요하지 않습니다.
  2. 성능 차이:

    • 실제로 대부분의 RDBMS는 ORDER BY에서 집계 함수를 직접 사용하는 경우에도 내부적으로 한 번 계산된 결과를 재사용하기 때문에, 성능 차이가 거의 없도록 최적화되어 있습니다.
    • 하지만, 내부적으로 최적화가 잘 되어 있는 경우가 많아 보통 성능 차이를 느끼기는 어려울 것입니다. 물론, 최적화가 안 되어 있는 환경에서는 차이가 생길 수 있지만, 이는 드문 사례입니다.
  3. 가독성 측면:

    • 성능 차이가 미미하다면, 읽기 쉽고 유지보수가 용이한 코드를 작성하는 것이 좋습니다. 따라서 컬럼명을 사용하는 것이 더 명확하고 직관적일 수 있습니다.

관련 질문의 유사한 답변으로는 다음을 참고해 보시기 바랍니다:
- Seatest: 성능 최적화에서의 Aggregate Function 사용법

위의 설명을 통해서 성능 측면에서도 차이가 없는 경우가 대부분인 것을 알 수 있으며, 가독성 면에서 alias를 활용하는 것이 코드의 유지보수나 관리에 더 적합할 수 있습니다.

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

No author

This post's author information has been deleted.

Ask a question