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

คำสั่ง HAVING ใน SQL Server

HAVING ใช้ทำอะไร?

HAVING ใช้กรองกลุ่มข้อมูล หลังจาก GROUP BY เหมือน WHERE แต่ทำงานบนผลลัพธ์ของฟังก์ชันรวม

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

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

ความแตกต่าง WHERE vs HAVING

WHEREHAVING
กรองแถว ก่อน จัดกลุ่มกรองกลุ่ม หลัง จัดกลุ่ม
ไม่ใช้ฟังก์ชันรวมได้ใช้ฟังก์ชันรวมได้ (SUM, COUNT...)

ตัวอย่าง

1. HAVING กับ SUM

SELECT bophan, SUM(soluong) AS 'Tong so luong'
FROM sanpham
GROUP BY bophan
HAVING SUM(soluong) > 100;

คืนเฉพาะแผนกที่รวมจำนวน > 100

2. HAVING กับ COUNT

SELECT thanhpho, COUNT(*) AS 'So nhanvien'
FROM nhanvien
WHERE bang = 'California'
GROUP BY thanhpho
HAVING COUNT(*) > 20;

กรองเมืองใน California ที่มีพนักงาน > 20 คน

3. HAVING กับ MIN

SELECT bophan, MIN(luong) AS 'Luong thap nhat'
FROM nhanvien
GROUP BY bophan
HAVING MIN(luong) >= 50000;

เฉพาะแผนกที่เงินเดือนต่ำสุด ≥ 50,000

4. HAVING กับ MAX

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

เฉพาะกลุ่มที่เงินเดือนสูงสุด > 34,000