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

MySQL에서 테이블 값을 기준으로 정수를 합산하는 효과적인 방법 – GROUP BY 활용하기

MySQL에서 특정 열(컬럼)의 값을 기준으로 정수 데이터를 그룹별로 합산하려면 GROUP BY 절을 사용해야 합니다. GROUP BY는 동일한 값을 가진 행들을 하나의 그룹으로 묶어 주며, SUM()과 같은 집계 함수와 함께 사용하면 그룹별 합계를 손쉽게 구할 수 있습니다.

1. 샘플 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable1443
    -> (
    -> StudentId int,
    -> StudentScore int
    -> );
Query OK, 0 rows affected (0.42 sec)

2. 레코드 삽입하기

INSERT 문을 사용하여 테이블에 데이터를 추가합니다.

mysql> insert into DemoTable1443 values(100,78);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1443 values(101,89);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1443 values(100,88);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1443 values(101,97);
Query OK, 1 row affected (0.12 sec)

3. 전체 레코드 조회하기

SELECT 문으로 테이블에 저장된 모든 데이터를 확인합니다.

mysql> select * from DemoTable1443;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-----------+--------------+
| StudentId | StudentScore |
+-----------+--------------+
|      100 |          78 |
|      101 |          89 |
|      100 |          88 |
|      101 |          97 |
+-----------+--------------+
4 rows in set (0.00 sec)

4. GROUP BY로 값 합산하기

테이블 값을 기준으로 정수를 합산하는 쿼리는 다음과 같습니다. StudentId를 기준으로 그룹화한 뒤, SUM() 함수로 각 학생의 점수 합계를 계산합니다.

mysql> select StudentId,sum(StudentScore) from DemoTable1443
    -> group by StudentId;

실행 결과는 다음과 같습니다.

+-----------+-------------------+
| StudentId | sum(StudentScore) |
+-----------+-------------------+
|      100 |             166 |
|      101 |             186 |
+-----------+-------------------+
2 rows in set (0.00 sec)

결과를 보면 StudentId가 100인 학생의 점수 합계는 78 + 88 = 166이고, StudentId가 101인 학생의 점수 합계는 89 + 97 = 186입니다. 이처럼 GROUP BY 절과 SUM() 집계 함수를 함께 사용하면 특정 열의 값을 기준으로 숫자 데이터를 효율적으로 합산할 수 있습니다.