inflearn logo
강의

Course

Instructor

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

Problems and Solutions

7.SQL - 집계와 그룹핑 : 문제와 풀이에서 2번문제

79

작성자 없음

0 asked

0

문제2 : 쇼핑몰 매출 현황 파악하기 에서 '평균 주문 금액'을 구하는것에 질문이 있습니다.

 

제가 생각한 답은
SELECT SUM(price*quantity) ,

SUM(price*quantity)/COUNT(*),

MAX(price),

MIN(price)

FROM order_stat;

이것인데,

 

강의에서는 AVG를 이용해서 하셨는데, 혹시 실무에서는 어떻게 구할까요?

 

 

sql mysql dbms/rdbms SQLD

Answer 1

0

communityai8509

안녕하세요, 인프런 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에 날리는 쿼리는 최대한 간단하게 하라는 의미

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

mysql워크벤치를 실행할때마다 오류가 뜹니다. 해결 방법좀 가르켜주세요.

0

44

1

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

0

137

2

sql서버가 켜지면 다시 꺼짐

0

136

2

INSERT INTO 관련 질문

0

108

1

MySQL 설치 질문 드립니다.

0

181

2

mysql화면 오류

0

107

1

NOT NULL과 DEFAULT 조건의 사용법

0

129

1

mysql 버전

0

116

1

정말 별 거 아니긴 한데요

0

149

2

논리적 실행 순서에서 SELECT 설명 질문

0

99

2

primary key는 테이블 당 하나만 존재할 수 있다?

0

119

1

노트앱 어떤 거 쓰시나요?

0

163

1

drop과 truncate

0

96

1

db 공부관련 질문

0

136

2

GROUP BY 에서 ORDER BY 를 사용했을 때 오류

0

128

1

오타 제보

0

91

1

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

0

100

1

문제5번 - 함수 코드 중복 방지를 위한 방법 중 서브쿼리와 CTE의 차이

0

133

1

order 테이블 생성이 안되네요

0

140

4

ifnull()과 default 차이

0

106

1

help me 도와주세요 MySQL 설치 pls 급해요

0

161

2

DB 설계편 예상 출시일

0

161

2

강의 내용

0

117

1

오류 원인

1

112

3