ไวยากรณ์พื้นฐาน
SELECT MAX(yourColumn) AS alias_name FROM yourTable;
ตัวอย่าง: ตารางพนักงาน
CREATE TABLE demo44 (
employee_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
employee_name VARCHAR(20),
employee_salary INT
);
INSERT INTO demo44 (employee_name, employee_salary) VALUES
('John', 3000), ('David', 4500), ('Bob', 3500),
('Carol', 5500), ('Mike', 4900);
ข้อมูลในตาราง
+-------------+---------------+-----------------+ | employee_id | employee_name | employee_salary | +-------------+---------------+-----------------+ | 1 | John | 3000 | | 2 | David | 4500 | | 3 | Bob | 3500 | | 4 | Carol | 5500 | | 5 | Mike | 4900 | +-------------+---------------+-----------------+
คำสั่งหาเงินเดือนสูงสุด
SELECT MAX(employee_salary) AS Highest_Salary FROM demo44;
ผลลัพธ์
+----------------+ | Highest_Salary | +----------------+ | 5500 | +----------------+
ขยายใช้งาน: หาพนักงานที่ได้เงินเดือนสูงสุด
วิธี 1: Subquery
SELECT employee_name, employee_salary FROM demo44 WHERE employee_salary = (SELECT MAX(employee_salary) FROM demo44);
วิธี 2: ORDER BY + LIMIT (ประสิทธิภาพดีกว่าบนตารางใหญ่)
SELECT employee_name, employee_salary FROM demo44 ORDER BY employee_salary DESC LIMIT 1;
วิธี 3: Window Function (MySQL 8.0+)
SELECT employee_name, employee_salary
FROM (
SELECT employee_name, employee_salary,
MAX(employee_salary) OVER () AS max_salary
FROM demo44
) t
WHERE employee_salary = max_salary;
สรุปฟังก์ชันรวม (Aggregate Functions)
| ฟังก์ชัน | คำอธิบาย |
|---|---|
| MAX() | ค่าสูงสุด |
| MIN() | ค่าต่ำสุด |
| AVG() | ค่าเฉลี่ย |
| SUM() | ผลรวม |
| COUNT() | จำนวนแถว |
ทั้งหมดทำงานร่วมกับ GROUP BY ได้