为此,将ORDER BY与GROUP BY子句一起使用。我们首先创建一个带有学生姓名和分数的表格-
mysql> create table countRowValueDemo -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(20), -> StudentMathScore int -> );
以下是使用insert命令在表中插入记录的查询-
mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('Larry',45); mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('Mike',56); mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('John',60); mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('David',40); mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('David',70); mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('John',80); mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('David',88);
以下是使用select语句显示表中所有记录的查询-
mysql> select * from countRowValueDemo;
这将产生以下输出-
+-----------+-------------+------------------+ | StudentId | StudentName | StudentMathScore | +-----------+-------------+------------------+ | 1 | Larry | 45 | | 2 | Mike | 56 | | 3 | John | 60 | | 4 | David | 40 | | 5 | David | 70 | | 6 | John | 80 | | 7 | David | 88 | +-----------+-------------+------------------+ 7 rows in set (0.00 sec)
情况1:降序(总和)
以下是对名称相似的学生的分数求和的查询。结果将以降序显示-
mysql> select StudentName, -> sum(StudentMathScore) AS TOTAL_SCORE -> from countRowValueDemo -> group by StudentName -> order by sum(StudentMathScore) desc;
这将产生以下输出-
+-------------+-------------+ | StudentName | TOTAL_SCORE | +-------------+-------------+ | David | 198 | | John | 140 | | Mike | 56 | | Larry | 45 | +-------------+-------------+ 4 rows in set (0.00 sec)
情况2:升序(总和)
以下是对名称相似的学生的分数求和的查询。结果将以降序显示-
mysql> select StudentName, -> sum(StudentMathScore) AS TOTAL_SCORE -> from countRowValueDemo -> group by StudentName -> order by sum(StudentMathScore);
这将产生以下输出-
+-------------+-------------+ | StudentName | TOTAL_SCORE | +-------------+-------------+ | Larry | 45 | | Mike | 56 | | John | 140 | | David | 198 | +-------------+-------------+ 4 rows in set (0.00 sec)