Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

คำสั่ง GROUP BY ใน SQL Server

GROUP BY ใช้ทำอะไร?

จัดกลุ่มแถวที่มีค่าเหมือนกันในคอลัมน์ที่ระบุ แล้วคำนวณค่ารวม (Aggregate) ต่อกลุ่ม

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

SELECT expr1, expr2, ..., expr_n,
       aggregate_function(expr)
FROM table_name
[WHERE condition]
GROUP BY expr1, expr2, ..., expr_n;

กฎสำคัญ

  • คอลัมน์ใน SELECT ที่ ไม่ได้อยู่ในฟังก์ชันรวม ต้องอยู่ใน GROUP BY ทุกคอลัมน์
  • ฟังก์ชันรวม: SUM, COUNT, MIN, MAX, AVG

ตัวอย่าง

1. ใช้ SUM

SELECT ten_sanpham, SUM(soluong) AS 'Tong so luong'
FROM sanpham
GROUP BY ten_sanpham;

รวมจำนวนสินค้าต่อชื่อสินค้า

2. ใช้ COUNT

SELECT quanly_id, COUNT(*) AS 'So nhan vien'
FROM nhanvien
WHERE ho = 'Anderson'
GROUP BY quanly_id;

นับพนักงานนามสกุล Anderson ต่อหัวหน้า

3. ใช้ MIN

SELECT loai_sanpham, MIN(soluong) AS 'So luong it nhat'
FROM sanpham
GROUP BY loai_sanpham;

หาจำนวนน้อยที่สุดต่อประเภทสินค้า

4. ใช้ MAX

SELECT bophan, MAX(luong) AS 'Luong cao nhat'
FROM nhanvien
GROUP BY bophan;

หาเงินเดือนสูงสุดต่อแผนก