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 |
+----+--------+-----+---------+---------+