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

MySQL에서 학생별 점수를 그룹화하고 총점을 별도 열로 표시하는 방법

학생별 점수를 그룹화하려면 MySQL의 GROUP BY 절을 사용하고, 점수의 합계를 계산하려면 SUM() 함수를 사용합니다. 이 글에서는 실제 예제를 통해 학생 이름별로 점수를 묶고 각 학생의 총점을 한 번에 조회하는 방법을 단계별로 살펴보겠습니다.

1. 예제 테이블 생성하기

먼저 학생 이름과 점수를 저장할 테이블을 생성합니다.

mysql> create table DemoTable1920
    (
    StudentName varchar(20),
    StudentMarks int
    );
Query OK, 0 rows affected (0.00 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용해 테이블에 몇 개의 레코드를 추가합니다. 같은 학생이 여러 번 시험을 본 상황을 가정해 'Chris'와 'David'의 점수를 여러 개 넣어 보겠습니다.

mysql> insert into DemoTable1920 values('Chris',67);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1920 values('David',97);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1920 values('Chris',57);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1920 values('David',45);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1920 values('Chris',89);
Query OK, 1 row affected (0.00 sec)

3. 전체 레코드 확인하기

SELECT 문으로 테이블에 저장된 모든 데이터를 조회해 보겠습니다.

mysql> select * from DemoTable1920;

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

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| Chris       |          67 |
| David       |          97 |
| Chris       |          57 |
| David       |          45 |
| Chris       |          89 |
+-------------+--------------+
5 rows in set (0.00 sec)

4. GROUP BY와 SUM()으로 학생별 총점 구하기

이제 특정 학생의 점수들을 그룹화하고 합산하는 쿼리입니다. GROUP BY StudentName으로 학생 이름 기준으로 행을 묶은 뒤, SUM(StudentMarks)로 각 그룹의 점수 합계를 계산합니다. AS 키워드를 사용해 결과 열의 이름을 TotalMarks(총점)로 지정했습니다.

mysql> select StudentName,SUM(StudentMarks) as TotalMarks from DemoTable1920
    group by StudentName;

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

+-------------+------------+
| StudentName | TotalMarks |
+-------------+------------+
| Chris       |       213 |
| David       |       142 |
+-------------+------------+
2 rows in set (0.00 sec)

결과 해석

  • Chris: 67 + 57 + 89 = 213점
  • David: 97 + 45 = 142점

이처럼 GROUP BY와 SUM() 함수를 함께 사용하면 중복된 학생 데이터를 하나의 행으로 그룹화하고, 각 학생의 총점을 별도의 열로 깔끔하게 표시할 수 있습니다. 이 기법은 성적 관리뿐 아니라 매출 집계, 로그 분석 등 다양한 데이터 요약 작업에도 동일하게 활용할 수 있습니다.