MySQL การใช้งานคำสั่ง GROUP BY

คำสั่ง GROUP BY ใน SQL ใช้สำหรับจัดกลุ่มข้อมูล (group records) ตามค่าของคอลัมน์ที่ระบุเพื่อใช้ร่วมกับฟังก์ชันกลุ่ม เช่น

  • COUNT() – นับจำนวน
  • SUM() – รวม
  • AVG() – ค่าเฉลี่ย
  • MIN() / MAX() – ค่าน้อยสุด / มากสุด

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

SELECT column_name, aggregate_function(column)
FROM table_name
GROUP BY column_name;

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

หาจำนวนภาพยนตร์โดยจัดกลุ่มตาม rating

SQL
SELECT rating, COUNT(*) AS total_movies
FROM film
GROUP BY rating;
  • แสดงจำนวนภาพยนตร์ที่มีในแต่ละ rating เช่น G, PG, R, NC-17
  • ใช้ GROUP BY rating เพื่อจัดกลุ่มข้อมูลตาม rating

หายอดรวมที่ลูกค้าแต่ละคนเคยจ่าย

SQL
SELECT customer_id, SUM(amount) AS total_paid
FROM payment
GROUP BY customer_id;
  • คำนวณยอดรวม (SUM) ที่ลูกค้าแต่ละคนจ่าย
  • จัดกลุ่มตาม customer_id เพื่อแยกยอดแต่ละคน

หาค่าเฉลี่ยของความยาวหนังในแต่ละ rating

SQL
SELECT rating, AVG(length) AS avg_length
FROM film
GROUP BY rating;
  • แสดง rating พร้อมค่าเฉลี่ยของ length (ความยาวหนัง) ในแต่ละประเภท

ใช้ร่วมกับ ORDER BY เพื่อเรียงลำดับผลลัพธ์

SQL
SELECT rating, COUNT(*) AS total
FROM film
GROUP BY rating
ORDER BY total DESC;
  • นับจำนวนหนังโดยจัดกลุ่มตาม rating
  • เรียงตามจำนวนหนังมากไปน้อย

ใช้ร่วมกับ HAVING เพื่อกรองผลลัพธ์หลัง GROUP BY

SQL
SELECT customer_id, SUM(amount) AS total_paid
FROM payment
GROUP BY customer_id
HAVING total_paid > 100;
  • แสดงเฉพาะลูกค้าที่มียอดรวมการชำระเงินมากกว่า 100
แชร์เรื่องนี้