SQL การใช้งาน Aggregate Functions

Aggregate functions ใน SQL ใช้ในการประมวลผลชุดข้อมูลและคืนค่าผลลัพธ์เป็นค่าเดียว ตัวอย่างเช่น การคำนวณผลรวม (SUM), ค่าเฉลี่ย (AVG), ค่ามากที่สุด (MAX), ค่าน้อยที่สุด (MIN), และการนับจำนวนแถว (COUNT)

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

สมมติว่ามีตารางชื่อ Sales ที่เก็บข้อมูลการขายสินค้าดังนี้

SQL
CREATE TABLE Sales (
    SaleID INT,
    ProductName VARCHAR(50),
    Quantity INT,
    Price DECIMAL(10, 2),
    SaleDate DATE
);

INSERT INTO Sales (SaleID, ProductName, Quantity, Price, SaleDate) VALUES
(1, 'Laptop', 5, 1200.00, '2024-01-01'),
(2, 'Mouse', 10, 25.50, '2024-01-02'),
(3, 'Keyboard', 6, 45.00, '2024-01-03'),
(4, 'Monitor', 3, 300.00, '2024-01-04'),
(5, 'Laptop', 2, 1200.00, '2024-01-05');

การใช้งาน Aggregate Functions

SUM (หาผลรวม)

ฟังก์ชัน SUM ใช้ในการหาผลรวมของค่าในคอลัมน์ที่เป็นตัวเลข

SQL
SELECT SUM(Quantity) AS TotalQuantity FROM Sales;

ผลลัพธ์

TotalQuantity
-------------
26

จากตารางตัวอย่าง จะรวมค่าในคอลัมน์ Quantity ได้ผลรวมเป็น 26

AVG (หาค่าเฉลี่ย)

ฟังก์ชัน AVG ใช้ในการหาค่าเฉลี่ยของข้อมูล

SQL
SELECT AVG(Price) AS AveragePrice FROM Sales;

ผลลัพธ์

AveragePrice
------------
554.10

ได้ผลลัพธ์เป็นค่าเฉลี่ยของราคาสินค้า

MAX (หาค่ามากที่สุด)

ฟังก์ชัน MAX ใช้ในการหาค่ามากที่สุดในคอลัมน์

SQL
SELECT MAX(Price) AS MaxPrice FROM Sales;

ผลลัพธ์

MaxPrice
--------
1200.00

ราคาสินค้าที่แพงที่สุดคือ 1200

MIN (หาค่าน้อยที่สุด)

ฟังก์ชัน MIN ใช้ในการหาค่าน้อยที่สุดในคอลัมน์

SQL
SELECT MIN(Price) AS MinPrice FROM Sales;

ผลลัพธ์

MinPrice
--------
25.50

ราคาสินค้าที่ถูกที่สุดคือ 25.50

COUNT (นับจำนวนแถว)

ฟังก์ชัน COUNT ใช้ในการนับจำนวนแถวที่มีข้อมูล

SQL
SELECT COUNT(SaleID) AS NumberOfSales FROM Sales;

ผลลัพธ์

NumberOfSales
-------------
5

มีการขายทั้งหมด 5 รายการ

การประยุกต์ใช้งาน GROUP BY ร่วมกับ Aggregate Functions

การใช้ GROUP BY เพื่อการประมวลผลข้อมูลแบบกลุ่ม

ในบางกรณีเราต้องการรวมข้อมูลเป็นกลุ่มตามค่าบางคอลัมน์ เช่น การนับจำนวนสินค้าที่ขายแยกตามชื่อสินค้า

SQL
SELECT ProductName, SUM(Quantity) AS TotalQuantity
FROM Sales
GROUP BY ProductName;

ผลลัพธ์

ผลลัพธ์นี้แสดงผลรวมของจำนวนสินค้าที่ขายในแต่ละประเภทของสินค้า

การใช้ HAVING กรองผลลัพธ์หลังจากใช้ GROUP BY

สามารถกรองข้อมูลได้โดยใช้ HAVING โดยใช้กับผลลัพธ์ที่ผ่านการประมวลผลด้วย aggregate functions

SQL
SELECT ProductName, SUM(Quantity) AS TotalQuantity
FROM Sales
GROUP BY ProductName
HAVING SUM(Quantity) > 5;

ผลลัพธ์

ฟังก์ชันนี้จะเลือกเฉพาะสินค้าที่มีการขายรวมเกิน 5 หน่วย

สรุป Aggregate Functions ที่นิยมใช้งาน

  1. SUM() – หาผลรวม
  2. AVG() – หาค่าเฉลี่ย
  3. MAX() – หาค่ามากที่สุด
  4. MIN() – หาค่าน้อยที่สุด
  5. COUNT() – นับจำนวนแถว

ทั้งนี้สามารถประยุกต์ใช้งานร่วมกับ GROUP BY และ HAVING เพื่อให้ได้ผลลัพธ์ที่ต้องการตามเงื่อนไขที่ซับซ้อนขึ้น

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