Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีหาค่าสูงสุดของคอลัมน์ด้วยฟังก์ชัน MAX() ใน MySQL

การใช้ฟังก์ชัน MAX() เพื่อหาค่าสูงสุด

ฟังก์ชัน MAX() เป็น Aggregate Function ที่ใช้หาค่าสูงสุดของคอลัมน์ที่ระบุ ทำงานได้กับตัวเลข สตริง และวันที่

รูปแบบคำสั่ง

SELECT MAX(column_name) FROM table_name;

ตัวอย่าง: หาค่า Id สูงสุด

1. สร้างตารางและเพิ่มข้อมูล

CREATE TABLE DemoTable (
    Id INT
);

INSERT INTO DemoTable VALUES (100);
INSERT INTO DemoTable VALUES (988);
INSERT INTO DemoTable VALUES (1000);
INSERT INTO DemoTable VALUES (99);
INSERT INTO DemoTable VALUES (999);

2. ดูข้อมูลทั้งหมด

SELECT * FROM DemoTable;

ผลลัพธ์:

+------+
| Id   |
+------+
| 100  |
| 988  |
| 1000 |
| 99   |
| 999  |
+------+

3. หาค่าสูงสุด

SELECT MAX(Id) AS MaxId FROM DemoTable;

ผลลัพธ์:

+-------+
| MaxId |
+-------+
| 1000  |
+-------+

คุณสมบัติของ MAX()

  • ข้ามค่า NULL อัตโนมัติ (ไม่รวม NULL ในการเปรียบเทียบ)
  • ทำงานกับทุกชนิดข้อมูลที่เปรียบเทียบได้ (Numeric, String, Date/Time)
  • คืนค่า NULL หากตารางว่างเปล่าหรือคอลัมน์เป็น NULL ทั้งหมด

การใช้งานขั้นสูง

หาค่าสูงสุดพร้อมข้อมูลแถวอื่นๆ

-- วิธี 1: Subquery
SELECT * FROM DemoTable WHERE Id = (SELECT MAX(Id) FROM DemoTable);

-- วิธี 2: ORDER BY + LIMIT (เร็วกว่าหากมี Index)
SELECT * FROM DemoTable ORDER BY Id DESC LIMIT 1;

หาค่าสูงสุดต่อกลุ่ม (GROUP BY)

SELECT Category, MAX(Price) AS MaxPrice 
FROM Products 
GROUP BY Category;

ประสิทธิภาพ (Performance)

  • หากคอลัมน์มี INDEX การใช้ MAX() จะเร็วมาก (O(1) หรือ O(log n))
  • ไม่มี Index จะต้อง Full Table Scan (O(n))
  • เทียบเท่ากับ ORDER BY column DESC LIMIT 1 แต่ MAX() อ่านง่ายกว่าและ Optimizer จัดการได้ดีกว่า

ฟังก์ชันคู่คือ MIN()

ใช้หาค่าต่ำสุดในลักษณะเดียวกัน:

SELECT MIN(Id) AS MinId FROM DemoTable;