ใช้ MAX() และ GROUP BY หาคะแนนสูงสุดต่อคนต่อวิชา
สร้างตารางและเพิ่มข้อมูล
mysql> create table DemoTable ( StudentEmailId varchar(20), Marks1 int, Marks2 int ); Query OK, 0 rows affected (0.90 sec)
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)
คิวรี่หาคะแนนสูงสุดแต่ละวิชาต่อคน
mysql> select StudentEmailId, max(Marks1), max(Marks2) from DemoTable group by StudentEmailId;
ผลลัพธ์
+-----------------+-------------+-------------+ | 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)
John มี 2 เรคคอร์ด Marks1: 45,32 → MAX=45 | Marks2: 32,45 → MAX=45 | GROUP BY จัดกลุ่มตาม Email แล้ว MAX หาค่าสูงสุดในแต่ละคอลัมน์