คำสั่ง 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