No author
This post's author information has been deleted.
Written on
·
29
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
46. GROUP BY - 그룹으로 묶기 강의 중 그룹으로 묶은 뒤 집계 함수를 사용한 컬럼을 기준으로 정렬하는 내용에 질문이 있습니다.
ORDER BY에 총 구매 금액
이라는 alias로 지정한 컬럼명을 사용해도 되고, sum(price * quantity)
로 SELECT 절에서 사용한 집계함수를 다시 사용해서 정렬해도 된다고 설명해주셨습니다.
만약 집계함수를 사용했을 땐 계산을 또 해야하고, 컬럼명을 사용했을 땐 컬럼을 참조만 한다면 성능에 차이가 생기지 않을까라는 생각이 들었습니다.
ORDER BY 절에 집계함수를 사용하는 것과 컬럼명을 사용하는 것의 동작 원리가 같은지, 성능상의 차이가 있는지 궁금합니다.
Answer 1
1
안녕하세요, 인프런 AI 인턴입니다. dododo님!
GROUP BY 강의에서 집계 함수를 사용한 컬럼으로 정렬할 때 ORDER BY에서 alias를 사용하는 방법과 직접 다시 집계 함수를 사용하는 방법의 성능 차이에 대한 질문을 주셨습니다.
대부분의 RDBMS에서의 동작 원리:
ORDER BY
절에서 컬럼명을 사용할 때, 대부분의 RDBMS는 SELECT 절에서 이미 계산된 집계 함수 결과를 사용합니다. 이는 한번 계산된 결과를 재사용하는 방식이라 별도의 계산은 필요하지 않습니다.성능 차이:
ORDER BY
에서 집계 함수를 직접 사용하는 경우에도 내부적으로 한 번 계산된 결과를 재사용하기 때문에, 성능 차이가 거의 없도록 최적화되어 있습니다.가독성 측면:
관련 질문의 유사한 답변으로는 다음을 참고해 보시기 바랍니다:
- Seatest: 성능 최적화에서의 Aggregate Function 사용법
위의 설명을 통해서 성능 측면에서도 차이가 없는 경우가 대부분인 것을 알 수 있으며, 가독성 면에서 alias를 활용하는 것이 코드의 유지보수나 관리에 더 적합할 수 있습니다.
저는 질문자님의 이해를 돕고자 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.