ฟังก์ชัน AVG() ใน SQL ใช้เพื่อคำนวณค่าเฉลี่ยของค่าตัวเลขในคอลัมน์ที่ระบุจากชุดข้อมูลหนึ่ง ๆ ฟังก์ชันนี้สามารถใช้ได้ในหลากหลายรูปแบบ เช่น การหาค่าเฉลี่ยของคอลัมน์ใดคอลัมน์หนึ่งทั้งตารางหรือเฉพาะบางแถวตามเงื่อนไขที่กำหนด
สร้างตารางตัวอย่าง
สมมติเรามีตารางข้อมูลชื่อ Employees ที่เก็บข้อมูลพนักงาน ซึ่งประกอบไปด้วย 4 คอลัมน์ คือ EmployeeID, FirstName, LastName, Department, และ Salary
SQL
CREATE TABLE Employees (
EmployeeID INT,
FirstName VARCHAR(100),
LastName VARCHAR(100),
Department VARCHAR(50),
Salary DECIMAL(10, 2)
);
INSERT INTO Employees (EmployeeID, FirstName, LastName, Department, Salary) VALUES
(1, 'John', 'Doe', 'IT', 50000.00),
(2, 'Jane', 'Smith', 'HR', 45000.00),
(3, 'Sam', 'Johnson', 'IT', 55000.00),
(4, 'Anna', 'Williams', 'Marketing', 47000.00),
(5, 'Paul', 'Brown', 'HR', 43000.00),
(6, 'Tom', 'Jones', 'IT', 60000.00);ข้อมูลในตาราง Employees จะเป็นดังนี้

ตัวอย่างการใช้งานฟังก์ชัน AVG()
หาค่าเฉลี่ยของเงินเดือนทั้งหมดในตาราง
SQL
SELECT AVG(Salary) AS AverageSalary FROM Employees;ผลลัพธ์

หาค่าเฉลี่ยของเงินเดือนแยกตามแผนก (Department)
SQL
SELECT Department, AVG(Salary) AS AverageSalary
FROM Employees
GROUP BY Department;ผลลัพธ์

หาค่าเฉลี่ยของเงินเดือนเฉพาะพนักงานในแผนก IT
SQL
SELECT AVG(Salary) AS IT_AverageSalary
FROM Employees
WHERE Department = 'IT';ผลลัพธ์

หาค่าเฉลี่ยของเงินเดือนพนักงาน โดยไม่รวมพนักงานที่มีเงินเดือนต่ำกว่า 45000
SQL
SELECT AVG(Salary) AS AverageSalaryExcludingLow
FROM Employees
WHERE Salary >= 45000;ผลลัพธ์

การประยุกต์ใช้งานฟังก์ชัน AVG()
- ใช้ร่วมกับเงื่อนไข (WHERE Clause): ฟังก์ชัน
AVG()สามารถใช้ร่วมกับเงื่อนไขในWHEREเพื่อเลือกแถวที่ต้องการคำนวณค่าเฉลี่ยได้ - ใช้ร่วมกับการจัดกลุ่ม (GROUP BY): สามารถใช้
GROUP BYเพื่อจัดกลุ่มข้อมูล และคำนวณค่าเฉลี่ยในแต่ละกลุ่มได้ - ใช้ใน Subqueries: ฟังก์ชัน
AVG()สามารถใช้ภายใน subquery เพื่อประมวลผลข้อมูลก่อนนำผลลัพธ์ไปใช้งานในคำสั่งหลักได้
