从表中对特定学生的分数进行分组,并在每个学生的单独列中显示总分?

mysqlmysqli database

要对分数进行分组,请使用 MySQL GROUP BY。要求和,请使用 MySQL sum() 函数。让我们首先创建一个表 −

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

使用 insert 命令在表中插入一些记录 −

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)

使用 select 语句显示表中的所有记录 −

mysql> select * from DemoTable1920;

这将产生以下输出 −

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

以下是对特定学生的成绩进行分组的查询 −

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)

相关文章