실습문제를 통해 복습해보자...!
Chapter 8 - 그룹화와 집계
payment 테이블의 행 수를 계산하는 쿼리를 작성하라.
count(*)
함수를 사용하자.mysql> SELECT COUNT(*)
-> FROM payment;
+----------+
| COUNT(*) |
+----------+
| 16049 |
+----------+
1 row in set (0.00 sec)
[실습 8-1]의 쿼리를 수정하여 각 고객의 지불 횟수를 계산하라. 고객ID와 각 고객이 지불한 총 금액을 함께 표시하라.
amount
라는 지불금액 열이 존재한다. 여기서 count(*)
함수를 사용하고, 고객ID별로 그룹화하면 되겠다. sum()
함수를 사용해야 한다.SELECT
customer_id
, COUNT(*)
, SUM(amount)
FROM payment
GROUP BY
customer_id ;
총 고객 수가 599명이므로 599개의 행이 나타나고, 각 고객별로 지불한 총 금액이 합산되어 보여진다.
적어도 40회 이상 결제한 고객만 포함하도록 [실습 8-2]의 쿼리를 수정하라.
count(*)
함수를 사용한다.HAVING
절에 조건을 넣는다.SELECT
customer_id
, COUNT(*)
, SUM(amount)
FROM payment
GROUP BY
customer_id
HAVING
COUNT(*) >= 40 ;
7개의 결과값이 나온다.