SQL - Clause

le HAVING Clause vous permet de spécifier des conditions qui filtrent les résultats du groupe qui apparaissent dans les résultats.

La clause WHERE place des conditions sur les colonnes sélectionnées, tandis que la clause HAVING place des conditions sur les groupes créés par la clause GROUP BY.

Syntaxe

Le bloc de code suivant montre la position de la clause HAVING dans une requête.

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

La clause HAVING doit suivre la clause GROUP BY dans une requête et doit également précéder la clause ORDER BY si elle est utilisée. Le bloc de code suivant a la syntaxe de l'instruction SELECT, y compris la clause HAVING -

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

Exemple

Considérez la table CUSTOMERS ayant les enregistrements suivants.

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

Voici un exemple, qui afficherait un enregistrement pour un nombre d'âge similaire qui serait supérieur ou égal à 2.

SQL > SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
GROUP BY age
HAVING COUNT(age) >= 2;

Cela produirait le résultat suivant -

+----+--------+-----+---------+---------+
| ID | NAME   | AGE | ADDRESS | SALARY  |
+----+--------+-----+---------+---------+
|  2 | Khilan |  25 | Delhi   | 1500.00 |
+----+--------+-----+---------+---------+