SQL การใช้งานฟังก์ชัน MAX

ใน SQL ฟังก์ชัน MAX() ใช้ในการหาค่ามากที่สุด (ค่าสูงสุด) ของข้อมูลในคอลัมน์นั้น ๆ โดยสามารถประยุกต์ใช้งานได้หลายรูปแบบ ขึ้นอยู่กับความต้องการ เช่น การหาค่ามากที่สุดของคอลัมน์เดียว การกรองข้อมูลตามเงื่อนไข หรือการใช้ร่วมกับฟังก์ชันอื่น ๆ

การสร้างตารางตัวอย่าง

สร้างตารางด้วยคำสั่งดังนี้

SQL
CREATE TABLE employees (
    id INT,
    name VARCHAR(100),
    department VARCHAR(50),
    salary DECIMAL(10, 2)
);

จากนั้นแทรกข้อมูลตัวอย่างลงในตาราง employees ด้วยคำสั่งดังนี้

SQL
INSERT INTO employees (id, name, department, salary)
VALUES
(1, 'Alice', 'IT', 80000),
(2, 'Bob', 'HR', 50000),
(3, 'Charlie', 'IT', 60000),
(4, 'David', 'HR', 55000),
(5, 'Eve', 'Finance', 75000);

เมื่อได้ข้อมูลตัวอย่างแล้วเราจะมาลองใช้ฟังก์ชัน MAX กันครับ

ตัวอย่างการใช้งานฟังก์ชัน MAX() ใน SQL

การหาค่าสูงสุดของคอลัมน์

ตัวอย่างพื้นฐานในการหาค่าสูงสุดของคอลัมน์ salary

SQL
SELECT MAX(salary) AS max_salary
FROM employees;

ผลลัพธ์

ฟังก์ชัน MAX() จะคืนค่ามากที่สุดของคอลัมน์ salary ในตาราง employees

max_salary
-----------------
80000.00

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

ถ้าเราต้องการหาพนักงานที่ได้รับเงินเดือนสูงที่สุดพร้อมกับแสดงชื่อพนักงานด้วย สามารถใช้การเชื่อมข้อมูลย่อย (subquery)

SQL
SELECT name, salary
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees);

ผลลัพธ์

ในกรณีนี้ เราใช้ MAX() เป็นส่วนหนึ่งของการทำ query ภายใน (subquery) เพื่อตรวจสอบว่าพนักงานคนไหนที่มีเงินเดือนสูงที่สุด

การหาค่ามากที่สุดในแต่ละกลุ่ม (GROUP BY)

หากต้องการหาค่ามากที่สุดของเงินเดือนในแต่ละแผนก สามารถใช้ร่วมกับ GROUP BY ได้ ดังนี้

SQL
SELECT department, MAX(salary) AS max_salary
FROM employees
GROUP BY department;

ในกรณีนี้ การใช้ GROUP BY จะแบ่งข้อมูลตามแผนก และคำนวณค่าสูงสุดในแต่ละแผนก

ผลลัพธ์

การหาค่ามากที่สุดโดยมีเงื่อนไข (WHERE Clause)

ถ้าต้องการหาค่าเงินเดือนสูงที่สุดของพนักงานในแผนก IT สามารถใช้ WHERE ในการกรองข้อมูลได้ ดังนี้

SQL
SELECT MAX(salary) AS max_salary
FROM employees
WHERE department = 'IT';

ผลลัพธ์

เราจะได้ค่าเงินเดือนสูงสุดของพนักงานในแผนก IT เท่านั้น

การใช้ MAX() ร่วมกับฟังก์ชันอื่น

เราสามารถใช้ MAX() ร่วมกับฟังก์ชันอื่น ๆ เช่น COALESCE() เพื่อจัดการกรณีที่มีค่า NULL ในคอลัมน์

SQL
SELECT COALESCE(MAX(salary), 0) AS max_salary
FROM employees;

จากโค้ด ในกรณีที่ไม่มีข้อมูลหรือมีค่า NULL ฟังก์ชัน COALESCE() จะคืนค่า 0 แทนการคืนค่า NULL

สรุป

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

แชร์เรื่องนี้