SQL - มี Clause
HAVING Clause ช่วยให้คุณสามารถระบุเงื่อนไขที่กรองผลลัพธ์ของกลุ่มที่จะปรากฏในผลลัพธ์
WHERE clause วางเงื่อนไขบนคอลัมน์ที่เลือกในขณะที่ HAVING clause วางเงื่อนไขบนกลุ่มที่สร้างโดย GROUP BY clause
ไวยากรณ์
บล็อกโค้ดต่อไปนี้แสดงตำแหน่งของ HAVING Clause ในแบบสอบถาม
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
HAVING clause ต้องเป็นไปตาม GROUP BY clause ในเคียวรีและต้องนำหน้า ORDER BY clause ด้วยถ้าใช้ บล็อกโค้ดต่อไปนี้มีไวยากรณ์ของคำสั่ง SELECT รวมถึง HAVING clause -
SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
ตัวอย่าง
พิจารณาตารางลูกค้าที่มีบันทึกต่อไปนี้
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
ต่อไปนี้เป็นตัวอย่างซึ่งจะแสดงบันทึกสำหรับการนับอายุที่ใกล้เคียงกันซึ่งจะมากกว่าหรือเท่ากับ 2
SQL > SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
GROUP BY age
HAVING COUNT(age) >= 2;
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -
+----+--------+-----+---------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+--------+-----+---------+---------+
| 2 | Khilan | 25 | Delhi | 1500.00 |
+----+--------+-----+---------+---------+