Đối với điều này, bạn có thể sử dụng GROUP BY cùng với mệnh đề ORDER BY. Đầu tiên chúng ta hãy tạo một bảng -
mysql> create table DemoTable1499 -> ( -> StudentName varchar(20), -> StudentMarks int -> ); Query OK, 0 rows affected (0.46 sec)
Chèn một số bản ghi vào bảng bằng lệnh chèn -
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)
Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -
Mysql> select * from DemoTable1499;
Điều này sẽ tạo ra kết quả sau -
+-------------+--------------+ | StudentName | StudentMarks | +-------------+--------------+ | Chris | 56 | | David | 78 | | Bob | 98 | | Chris | 45 | | David | 98 | | Bob | 58 | +-------------+--------------+ 6 rows in set (0.00 sec)
Sau đây là truy vấn để tổng hợp các giá trị của các hàng và sắp xếp kết quả -
mysql> select StudentName,sum(StudentMarks) as TotalSum from DemoTable1499 -> group by StudentName -> order by TotalSum desc;
Điều này sẽ tạo ra kết quả sau -
+-------------+----------+ | StudentName | TotalSum | +-------------+----------+ | David | 176 | | Bob | 156 | | Chris | 101 | +-------------+----------+ 3 rows in set (0.00 sec)