문제 (8) - 그룹화와 집계
실습문제를 통해 복습해보자...!
Chapter 8 - 그룹화와 집계
실습 8-1.
payment 테이블의 행 수를 계산하는 쿼리를 작성하라.
- 고유값 관계없이 전체 행수를 계산하면 되니까
count(*)
함수를 사용하자.
mysql> SELECT COUNT(*)
-> FROM payment;
+----------+
| COUNT(*) |
+----------+
| 16049 |
+----------+
1 row in set (0.00 sec)
실습 8-2.
[실습 8-1]의 쿼리를 수정하여 각 고객의 지불 횟수를 계산하라. 고객ID와 각 고객이 지불한 총 금액을 함께 표시하라.
- payment 테이블을 살펴보자.
amount
라는 지불금액 열이 존재한다. 여기서count(*)
함수를 사용하고, 고객ID별로 그룹화하면 되겠다.- 각 고객ID별 지불한 총 금액이 나타나야 하므로
sum()
함수를 사용해야 한다.
SELECT
customer_id
, COUNT(*)
, SUM(amount)
FROM payment
GROUP BY
customer_id ;
총 고객 수가 599명이므로 599개의 행이 나타나고, 각 고객별로 지불한 총 금액이 합산되어 보여진다.
실습 8-3.
적어도 40회 이상 결제한 고객만 포함하도록 [실습 8-2]의 쿼리를 수정하라.
- 결제횟수를 세야 하므로,
count(*)
함수를 사용한다. - 고객 ID별로 그룹화하고, 그룹화 한 이후에 40회 이상 이라는 필터조건이 들어가야 하므로
HAVING
절에 조건을 넣는다.
SELECT
customer_id
, COUNT(*)
, SUM(amount)
FROM payment
GROUP BY
customer_id
HAVING
COUNT(*) >= 40 ;
7개의 결과값이 나온다.
Author And Source
이 문제에 관하여(문제 (8) - 그룹화와 집계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@golmori/exercise-008저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)