sql command

Database SQL – Having Clause

จาการใช้งาน SQL Select statement เราสามารถกำหนดเงื่อนไขในการเลือกข้อมูลด้วย SQL Where Clause นอกจากนี้ยังสามารถจัดกลุ่มข้อมูลด้วย SQL GROUP BY ได้ ซึ่งหลังจากจัดกลุ่มแล้วเราไม่สามารถทำเงือนไขเพื่อเลือกข้อมูลจาก SQL Where Clause ได้อีกรอบแล้ว เราต้องใช้คำสั่ง SQL HAVING Clause แทน ในการเลือกข้อมูลด้วยเงือนไขที่ต้องการ หลังจากมีการจัดกลุ่ม หรือ ทำ SQL GROUP BY

 

รูปแบบ (Syntax)

SQL Having Clause

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

จะเห็นว่าการใช้งานตำแหน่งของ Where, Group by, Having และ Order by จะมีการเรียงลำดับการใช้งานแบบนี้เสมอ

SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2

 

ตัวอย่างคำสั่ง VIEW TABLE

Table – CUSTOMERS

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

 

ทดลองดึงข้อมูลจาก table CUSTOMER โดยมีการจัดกลุ่ม GROUP BY ด้วย column AGE จากนั้นเลือกแสดงผลเฉพาะเงื่อนไขที่ มีจำนวนคนที่มีอายุเท่ากัน มากกว่าตั้งแต่ 2 คนขึ้นไป

SQL > SELECT AGE, COUNT(AGE) AS TOTAL
FROM CUSTOMERS
GROUP BY age
HAVING COUNT(age) >= 2;

ผลลัพธ์ที่ได้

+------+--------+
|  AGE |  TOTAL |
+------+--------+
|  25  |    2   |
+------+--------+

 

 

Reference:

รวมคำสั่ง SQL Command พื้นฐานเบื้องต้น

Database, Oracle, MySQL

 

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com, https://www.tutorialspoint.com

Leave a Reply