如何在MySQL中执行条件GROUP BY来获取?

让我们首先创建一个表-

mysql> create table DemoTable
(
   StudentName varchar(40),
   StudentMarks int
);

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

mysql> insert into DemoTable values('John',78);
mysql> insert into DemoTable values('Chris',48);
mysql> insert into DemoTable values('John',67);
mysql> insert into DemoTable values('Chris',89);

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

mysql> select *from DemoTable;

这将产生以下输出。在这里,我们有一些重复的学生姓名,例如带有标记78和67的学生“约翰”-

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| John        |           78 |
| Chris       |           48 |
| John        |           67 |
| Chris       |           89 |
+-------------+--------------+
4 rows in set (0.00 sec)

以下是执行条件GROUP BY并显示带有最高分的唯一学生姓名的查询。例如,学生“约翰”的最高分数为78-

mysql> select StudentName,Max(StudentMarks) AS StudentMarks from DemoTable group by StudentName;

这将产生以下输出-

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| John        |           78 |
| Chris       |           89 |
+-------------+--------------+
2 rows in set (0.00 sec)