用于对行值求和并对结果进行排序的 MySQL 查询是什么?
为此,可将 GROUP BY 与 ORDER BY 子句一起使用。我们先创建一个表 -
mysql> create table DemoTable1499 -> ( -> StudentName varchar(20), -> StudentMarks int -> ); Query OK, 0 rows affected (0.46 sec)
使用 insert 命令在表中插入一些记录 -
mysql> insert into DemoTable1499 values('Chris',56); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable1499 values('David',78); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable1499 values('Bob',98); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable1499 values('Chris',45); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable1499 values('David',98); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable1499 values('Bob',58); Query OK, 1 row affected (0.11 sec)
使用 select 语句显示表中的所有记录 -
Mysql> select * from DemoTable1499;
这将生成以下输出 -
+-------------+--------------+ | StudentName | StudentMarks | +-------------+--------------+ | Chris | 56 | | David | 78 | | Bob | 98 | | Chris | 45 | | David | 98 | | Bob | 58 | +-------------+--------------+ 6 rows in set (0.00 sec)
以下是用于对行值求和并对结果排序的查询 -
mysql> select StudentName,sum(StudentMarks) as TotalSum from DemoTable1499 -> group by StudentName -> order by TotalSum desc;
这将生成以下输出 -
+-------------+----------+ | StudentName | TotalSum | +-------------+----------+ | David | 176 | | Bob | 156 | | Chris | 101 | +-------------+----------+ 3 rows in set (0.00 sec)
广告