Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

รวมคะแนนของชื่อซ้ำกันใน MySQL ด้วย GROUP BY

ใช้ GROUP BY ร่วมกับ SUM() เพื่อรวมคะแนนของชื่อที่ซ้ำกัน

สร้างตารางและเพิ่มข้อมูล (มีชื่อซ้ำ)

mysql> create table DemoTable( 
    Name varchar(100), 
    Score int ); 
Query OK, 0 rows affected (0.70 sec)

mysql> insert into DemoTable values('Adam',50); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Bob',80); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Adam',70); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Adam',10); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Carol',98); Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Bob',10); Query OK, 1 row affected (0.08 sec)

แสดงข้อมูลก่อนรวม

mysql> select * from DemoTable;
+-------+-------+
| Name  | Score |
+-------+-------+
| Adam  | 50    |
| Bob   | 80    |
| Adam  | 70    |
| Adam  | 10    |
| Carol | 98    |
| Bob   | 10    |
+-------+-------+
6 rows in set (0.00 sec)

คิวรีรวมคะแนนตามชื่อ

mysql> select Name, sum(Score) from DemoTable group by Name;
+-------+------------+
| Name  | sum(Score) |
+-------+------------+
| Adam  | 130        |
| Bob   | 90         |
| Carol | 98         |
+-------+------------+
3 rows in set (0.00 sec)

การคำนวณ: Adam: 50+70+10=130, Bob: 80+10=90, Carol: 98