Computer >> Máy Tính >  >> Lập trình >> MySQL

Tìm nạp điểm cá nhân tối đa cho một sinh viên có bản ghi mark1 và mark2 trong MySQL?

Đối với điều này, hãy sử dụng MAX () cùng với mệnh đề GROUP BY. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   -> (
   -> StudentEmailId varchar(20),
   -> Marks1 int,
   -> Marks2 int
-> );
Query OK, 0 rows affected (0.90 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values('John@gmail.com',45,32);
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable values('John@gmail.com',32,45);
Query OK, 1 row affected (0.34 sec)
mysql> insert into DemoTable values('Carol@gmail.com',32,45);
Query OK, 1 row affected (1.64 sec)
mysql> insert into DemoTable values('David@gmail.com',45,32);
Query OK, 1 row affected (0.18 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 DemoTable ;

Điều này sẽ tạo ra kết quả sau -

+-----------------+--------+--------+
| StudentEmailId  | Marks1 | Marks2 |
+-----------------+--------+--------+
| John@gmail.com |      45 |     32 |
| John@gmail.com |      32 |     45 |
| Carol@gmail.com |     32 |     45 |
| David@gmail.com |     45 |     32 |
+-----------------+--------+--------+
4 rows in set (0.00 sec)

Đây là truy vấn để lấy số điểm cá nhân tối đa cho một học sinh có bản ghi điểm 1 và điểm 2 -

mysql> select StudentEmailId,max(Marks1),max(Marks2) from DemoTable
   -> group by StudentEmailId;

Điều này sẽ tạo ra kết quả sau -

+-----------------+-------------+-------------+
| StudentEmailId  | max(Marks1) | max(Marks2) |
+-----------------+-------------+-------------+
| John@gmail.com  |          45 |          45 |
| Carol@gmail.com |          32 |          45 |
| David@gmail.com |          45 |          32 |
+-----------------+-------------+-------------+
3 rows in set (0.00 sec)