동일 이름의 레코드 점수를 합산하려면 GROUP BY 이름과 SUM(점수)을 사용합니다.
테이블 생성 및 데이터 삽입
mysql> CREATE TABLE DemoTable (
-> StudentName VARCHAR(20),
-> StudentMarks INT
-> );
Query OK, 0 rows affected (0.68 sec)
mysql> INSERT INTO DemoTable VALUES('Chris',50);
Query OK, 1 row affected (0.61 sec)
mysql> INSERT INTO DemoTable VALUES('David',70);
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable VALUES('Chris',80);
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('David',90);
Query OK, 1 row affected (0.24 sec)
데이터 조회
mysql> SELECT * FROM DemoTable;
+-------------+--------------+ | StudentName | StudentMarks | +-------------+--------------+ | Chris | 50 | | David | 70 | | Chris | 80 | | David | 90 | +-------------+--------------+ 4 rows in set (0.00 sec)
이름별 점수 합계
mysql> SELECT StudentName, SUM(StudentMarks) FROM DemoTable GROUP BY StudentName;
+-------------+-------------------+ | StudentName | SUM(StudentMarks) | +-------------+-------------------+ | Chris | 130 | | David | 160 | +-------------+-------------------+ 2 rows in set (0.00 sec)
응용: SELECT StudentName, COUNT(*) AS 횟수, SUM(StudentMarks) AS 총점, AVG(StudentMarks) AS 평균 FROM DemoTable GROUP BY StudentName으로 통계 한번에 조회 가능합니다.