7.SQL - 집계와 그룹핑 : 문제와 풀이에서 2번문제
67
작성자 없음
0 asked
문제2 : 쇼핑몰 매출 현황 파악하기 에서 '평균 주문 금액'을 구하는것에 질문이 있습니다.
제가 생각한 답은
SELECT SUM(price*quantity) ,
SUM(price*quantity)/COUNT(*),
MAX(price),
MIN(price)
FROM order_stat;
이것인데,
강의에서는 AVG를 이용해서 하셨는데, 혹시 실무에서는 어떻게 구할까요?
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. 원도윤님.
‘평균 주문 금액’을 구하는 방법에 대한 질문에 대해 답변드리겠습니다.
실제 쿼리를 작성할 때는 AVG 함수를 사용하는 것이 더 직관적이고 간단한 방법입니다. AVG 함수는 SQL에서 평균을 계산하기 위해 설계된 함수로, 사용하기도 쉽고 가독성 측면에서도 좋습니다. 실무에서도 AVG 함수를 주로 사용합니다. 예를 들어:
SELECT AVG(price * quantity) AS average_order_value
FROM order_stat;
이는 price * quantity의 평균을 직접 계산해주기 때문에, 실수의 여지가 적고 코드가 깔끔하게 보입니다.
하지만, 특별한 경우에는 SUM(price * quantity) / COUNT(*)로 평균을 계산하는 방법을 사용할 수도 있습니다. 예를 들면, 전체 레코드 수 중 특정 조건에 맞는 레코드만 포함하여 평균을 구하고 싶다거나, 더 복잡한 계산을 위해 중간 데이터를 필요로 하는 경우입니다. 다만, 이 방식은 모든 조건을 명확히 정의해야 하기 때문에 실수를 유발할 수 있습니다.
결론적으로, 단순한 평균 계산은 AVG를 사용하는 것이 좋으며, SUM/COUNT 방식은 특별한 요구사항이 있을 때 사용될 수 있습니다.
관련 질문으로 더 알아보고 싶다면 아래 링크를 참조해보세요:
- 쿼리로 어느정도의 연산 레벨까지 허용 하는게 맞을까요?
- db에 날리는 쿼리는 최대한 간단하게 하라는 의미
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
교재 p.31 실행순서 오류?
0
108
2
sql서버가 켜지면 다시 꺼짐
0
108
2
INSERT INTO 관련 질문
0
86
1
MySQL 설치 질문 드립니다.
0
144
2
mysql화면 오류
0
90
1
NOT NULL과 DEFAULT 조건의 사용법
0
105
1
mysql 버전
0
94
1
정말 별 거 아니긴 한데요
0
135
2
논리적 실행 순서에서 SELECT 설명 질문
0
87
2
primary key는 테이블 당 하나만 존재할 수 있다?
0
109
1
노트앱 어떤 거 쓰시나요?
0
145
1
drop과 truncate
0
87
1
db 공부관련 질문
0
128
2
GROUP BY 에서 ORDER BY 를 사용했을 때 오류
0
114
1
오타 제보
0
82
1
GROUP BY 강의 중 ORDER BY에 관한 질문
0
91
1
문제5번 - 함수 코드 중복 방지를 위한 방법 중 서브쿼리와 CTE의 차이
0
120
1
order 테이블 생성이 안되네요
0
121
4
ifnull()과 default 차이
0
95
1
help me 도와주세요 MySQL 설치 pls 급해요
0
149
2
DB 설계편 예상 출시일
0
154
2
강의 내용
0
106
1
오류 원인
1
101
3
개발자 취준
0
244
2

