Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 GROUP BY 절과 함께 SUM() 함수를 사용하면 좋은 이유

MySQL에서 SUM() 함수를 GROUP BY 절과 함께 사용하면, SUM() 함수는 GROUP BY 절에 지정된 각 그룹별로 합계를 계산합니다. 이 조합의 가장 큰 장점은 특정 그룹별 총합을 손쉽게 구할 수 있다는 점입니다.

예제 테이블 소개

이 개념을 이해하기 위해 다음과 같은 레코드를 가진 'employee_tbl' 테이블을 살펴보겠습니다.

mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id   | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
| 1    | John | 2007-01-24 |         250        |
| 2    | Ram  | 2007-05-27 |         220        |
| 3    | Jack | 2007-05-06 |         170        |
| 3    | Jack | 2007-04-06 |         100        |
| 4    | Jill | 2007-04-06 |         220        |
| 5    | Zara | 2007-06-06 |         300        |
| 5    | Zara | 2007-02-06 |         350        |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)

GROUP BY와 함께 SUM() 사용하기

아래 쿼리는 각 사람별로 관련된 모든 레코드를 합산하여, 직원마다 입력한 총 페이지 수를 보여줍니다.

mysql> SELECT name, SUM(daily_typing_pages)
    -> FROM employee_tbl GROUP BY name;
+------+-------------------------+
| name | SUM(daily_typing_pages) |
+------+-------------------------+
| Jack |           270           |
| Jill |           220           |
| John |           250           |
| Ram  |           220           |
| Zara |           650           |
+------+-------------------------+
5 rows in set (0.17 sec)

결과 분석

위 결과를 보면 각 이름이 하나의 그룹으로 묶여 해당 그룹의 daily_typing_pages 값들이 모두 더해진 것을 확인할 수 있습니다. 예를 들어 Jack은 두 개의 레코드(170 + 100)가 있어 총 270이 되었고, Zara 역시 두 개의 레코드(300 + 350)가 합산되어 650이 되었습니다.

이처럼 GROUP BY 절과 SUM() 함수를 함께 사용하면 전체 데이터를 일일이 확인하지 않고도 그룹별 집계 결과를 한 번의 쿼리로 빠르게 얻을 수 있어, 데이터 분석 및 보고서 작성 시 매우 유용합니다.