ข้ามไปยังเนื้อหาหลัก
คู่มือระบบ เนื้อหาผ่านการตรวจสอบแล้ว

ฟังก์ชัน SUM() คืออะไร?

บทความนี้แนะนำฟังก์ชัน `SUM()` ใน MySQL ซึ่งใช้สำหรับหาผลรวมของค่าในคอลัมน์ที่เป็นตัวเลข โดยสามารถใช้ร่วมกับ `GROUP BY` เพื่อหาผลรวมตามกลุ่มข้อมูลต่างๆ ได้ ฟังก...

ฟังก์ชัน SUM() คืออะไร?

หลังจากที่เราได้เรียนรู้การนับจำนวนแถวด้วยฟังก์ชัน COUNT() กันไปแล้ว ในบทนี้เราจะมาทำความรู้จักกับฟังก์ชัน SUM() ซึ่งเป็นฟังก์ชันที่ใช้ในการหาผลรวมของค่าในคอลัมน์ที่กำหนดไว้

ฟังก์ชัน SUM() มีประโยชน์อย่างมากในการวิเคราะห์ข้อมูล เช่น การหาผลรวมยอดขายทั้งหมด, การหาผลรวมจำนวนสินค้าคงคลัง หรือการหาผลรวมคะแนนสอบของนักเรียน

รูปแบบการใช้งาน SUM(column_name)

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

SELECT SUM(column_name) FROM table_name;

โดย column_name คือชื่อคอลัมน์ที่เราต้องการหาผลรวม และ table_name คือชื่อตารางที่คอลัมน์นั้นอยู่

ข้อสำคัญ: คอลัมน์ที่ใช้กับฟังก์ชัน SUM() จะต้องเป็นชนิดข้อมูลตัวเลขเท่านั้น (เช่น INT, DECIMAL, FLOAT) หากเป็นชนิดข้อมูลอื่น เช่น VARCHAR หรือ DATE จะไม่สามารถใช้ฟังก์ชัน SUM() ได้

ตัวอย่างการใช้งาน SUM()

สมมติว่าเรามีตาราง products ที่เก็บข้อมูลเกี่ยวกับสินค้า โดยมีคอลัมน์ price เก็บราคาสินค้า และคอลัมน์ quantity เก็บจำนวนสินค้าคงเหลือ

CREATE TABLE products (
  id INT PRIMARY KEY,
  name VARCHAR(255),
  price DECIMAL(10, 2),
  quantity INT
);

INSERT INTO products (id, name, price, quantity) VALUES
(1, 'เสื้อยืด', 250.00, 100),
(2, 'กางเกงยีนส์', 750.00, 50),
(3, 'รองเท้าผ้าใบ', 1200.00, 30),
(4, 'กระเป๋า', 500.00, 75);

ถ้าเราต้องการหาราคาสินค้าทั้งหมดที่มีอยู่ในคลัง เราสามารถใช้ฟังก์ชัน SUM() ได้ดังนี้

SELECT SUM(price * quantity) AS total_value FROM products;

ผลลัพธ์ที่ได้จะเป็นดังนี้

+-------------+
| total_value |
+-------------+
|    120250.00 |
+-------------+
1 row in set (0.00 sec)

จากตัวอย่าง เราได้นำราคา (price) มาคูณกับจำนวน (quantity) ก่อน แล้วจึงใช้ฟังก์ชัน SUM() เพื่อหาผลรวมของราคาสินค้าทั้งหมด ซึ่งก็คือ 120,250 บาท

ข้อสังเกต: เราใช้ AS total_value เพื่อตั้งชื่อให้กับคอลัมน์ผลลัพธ์ เพื่อให้ง่ายต่อการอ่านและการนำไปใช้งานต่อ

การใช้งาน SUM() ร่วมกับ GROUP BY

ฟังก์ชัน SUM() มักถูกใช้ร่วมกับ GROUP BY เพื่อหาผลรวมของข้อมูลที่ถูกจัดกลุ่มตามเงื่อนไขที่กำหนด ตัวอย่างเช่น ถ้าเราต้องการหาราคาสินค้าทั้งหมดของแต่ละประเภท เราสามารถทำได้ดังนี้ (สมมติว่าเราเพิ่มคอลัมน์ category ในตาราง products)

ALTER TABLE products ADD COLUMN category VARCHAR(255);

UPDATE products SET category = 'เสื้อผ้า' WHERE id IN (1, 2);
UPDATE products SET category = 'รองเท้า' WHERE id = 3;
UPDATE products SET category = 'เครื่องประดับ' WHERE id = 4;

SELECT category, SUM(price * quantity) AS total_value
FROM products
GROUP BY category;

ผลลัพธ์ที่ได้จะเป็นดังนี้

+---------------+-------------+
| category      | total_value |
+---------------+-------------+
| เครื่องประดับ |     37500.00 |
| รองเท้า       |     36000.00 |
| เสื้อผ้า       |     46750.00 |
+---------------+-------------+
3 rows in set (0.00 sec)

จากตัวอย่าง เราได้ทำการจัดกลุ่มข้อมูลตามประเภทสินค้า (category) แล้วใช้ฟังก์ชัน SUM() เพื่อหาราคาสินค้าทั้งหมดของแต่ละประเภท

กรณีใช้งานจริง

สถานการณ์: บริษัทแห่งหนึ่งต้องการทราบยอดขายรวมของสินค้าแต่ละประเภทในแต่ละเดือน เพื่อนำข้อมูลไปวิเคราะห์และวางแผนการตลาด

วิธีแก้ปัญหา: สมมติว่าเรามีตาราง sales ที่เก็บข้อมูลการขาย โดยมีคอลัมน์ product_id, sale_date, quantity, และ price

SELECT
    DATE_FORMAT(sale_date, '%Y-%m') AS sale_month,
    p.category,
    SUM(s.quantity * s.price) AS total_sales
FROM sales s
JOIN products p ON s.product_id = p.id
GROUP BY sale_month, p.category
ORDER BY sale_month, p.category;

จากตัวอย่าง เราได้ทำการรวมตาราง sales และ products โดยใช้ product_id เป็นคีย์ จากนั้นเราได้จัดกลุ่มข้อมูลตามเดือน (sale_month) และประเภทสินค้า (category) แล้วใช้ฟังก์ชัน SUM() เพื่อหายอดขายรวมของแต่ละประเภทในแต่ละเดือน สุดท้ายเราเรียงลำดับข้อมูลตามเดือนและประเภทสินค้า

ข้อผิดพลาดที่พบบ่อย

  • การใช้ SUM() กับคอลัมน์ที่ไม่ใช่ตัวเลข: อย่างที่กล่าวไปข้างต้น คอลัมน์ที่ใช้กับฟังก์ชัน SUM() จะต้องเป็นชนิดข้อมูลตัวเลขเท่านั้น หากเป็นชนิดข้อมูลอื่น จะทำให้เกิดข้อผิดพลาด
  • การลืม WHERE clause: หากต้องการหาผลรวมของข้อมูลที่ตรงตามเงื่อนไขบางอย่าง อย่าลืมใช้ WHERE clause เพื่อกรองข้อมูลก่อนที่จะใช้ฟังก์ชัน SUM()
  • การใช้งาน GROUP BY ไม่ถูกต้อง: หากใช้ GROUP BY ร่วมกับ SUM() อย่าลืมระบุคอลัมน์ที่ไม่ได้อยู่ในฟังก์ชัน SUM() ใน GROUP BY clause ด้วย

สรุป

ฟังก์ชัน SUM() เป็นเครื่องมือที่มีประโยชน์อย่างมากในการหาผลรวมของข้อมูลในฐานข้อมูล MySQL การใช้งานร่วมกับ GROUP BY ช่วยให้เราสามารถวิเคราะห์ข้อมูลได้อย่างละเอียดและมีประสิทธิภาพมากยิ่งขึ้น

ในบทถัดไป เราจะมาเรียนรู้เกี่ยวกับฟังก์ชัน AVG() ซึ่งเป็นฟังก์ชันที่ใช้ในการหาค่าเฉลี่ยของค่าในคอลัมน์

Office.in.th Custom Service

ต้องการพัฒนาระบบหรือปรับแต่งจากโครงสร้างนี้?

Office.in.th รับพัฒนาและออกแบบ Enterprise Web Application, API Integration และระบบบริหารงานภาครัฐ/เอกชน พร้อมการสนับสนุนระยะยาว

ดูบริการรับพัฒนาซอฟต์แวร์