Để làm điều này, bạn có thể sử dụng mệnh đề GROUP BY. Để tìm giá trị lớn nhất, hãy sử dụng hàm MAX(). Hãy cùng tạo một bảng trước:
mysql> CREATE TABLE DemoTable1804 (
Id INT,
Marks1 INT,
Marks2 INT,
Marks3 INT
); Query OK, 0 rows affected (0.00 sec)
Chèn một số bản ghi vào bảng bằng lệnh INSERT:
mysql> INSERT INTO DemoTable1804 VALUES(1,56,89,34); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO DemoTable1804 VALUES(1,98,NULL,94); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO DemoTable1804 VALUES(2,34,45,78); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO DemoTable1804 VALUES(2,NULL,67,NULL); Query OK, 1 row affected (0.00 sec)
Hiển thị tất cả bản ghi từ bảng bằng lệnh SELECT:
mysql> SELECT * FROM DemoTable1804;
Kết quả sẽ như sau:
+------+--------+--------+--------+ | Id | Marks1 | Marks2 | Marks3 | +------+--------+--------+--------+ | 1 | 56 | 89 | 34 | | 1 | 98 | NULL | 94 | | 2 | 34 | 45 | 78 | | 2 | NULL | 67 | NULL | +------+--------+--------+--------+ 4 rows in set (0.00 sec)
Dưới đây là truy vấn để gom hàng và tìm giá trị lớn nhất:
mysql> SELECT Id, MAX(Marks1), MAX(Marks2), MAX(Marks3)
FROM DemoTable1804
GROUP BY Id;
Kết quả sẽ như sau:
+------+-------------+-------------+-------------+ | Id | MAX(Marks1) | MAX(Marks2) | MAX(Marks3) | +------+-------------+-------------+-------------+ | 1 | 98 | 89 | 94 | | 2 | 34 | 67 | 78 | +------+-------------+-------------+-------------+ 2 rows in set (0.00 sec)