Tutoriel classi...SE CONNECTER
Tutoriel classique SQLite
auteur:php.cn  temps de mise à jour:2022-04-13 17:05:02

Clause SQLiteHaving


La clause

HAVING permet de spécifier des conditions pour filtrer les résultats groupés qui apparaîtront dans le résultat final. La clause

WHERE définit une condition sur les colonnes sélectionnées, tandis que la clause HAVING définit une condition sur le regroupement créé par la clause GROUP BY.

Syntaxe

Voici la position de la clause HAVING dans la requête SELECT :

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

Dans une requête, la clause HAVING doit être placée après la clause GROUP BY et avant la clause ORDER BY. Voici la syntaxe d'une instruction SELECT contenant une clause HAVING :

SELECT colonne1, colonne2
FROM table1, table2
WHERE [ conditions ]
GROUP BY colonne1, colonne2
AVOIR [ conditions ]
ORDER BY colonne1, colonne2

Exemple

Supposons que la table COMPANY contienne les enregistrements suivants : ---- ---------- ---------- ------- ---

1                                                                                                                                                                                            0,0
3 Teddy 23 NORVÈGE 20000.0
4 Mark 25 Rich-Mond 650 00.0
5 David 27 Texas 85000.0
6 KIM 22 HALL SUD 45000.0
7 James 24 HOUSTON 10000.0
8 p AUL 24 Houston 20000.0
9 James 44 Norvège 5000.0
10 James 45 Texas 5000.0


Voici un exemple qui affichera tous les enregistrements dont le nombre de noms est inférieur à 2 :

sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) <

Cela produira les résultats suivants :

ID                                                                                                                                                                                                                         ------ ---------- ----------
2 "                                                                       ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐-------- 🎜>6 Kim 22 Sud- Hall 45000
4 Mark 25 Rich-Mond 65000
3 Teddy 23 Norvège 20000


Voici un exemple qui affichera tous les enregistrements avec un nombre de noms supérieur à 2 :

sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) > 2;

Cela produira les résultats suivants :

ID NOM ÂGE ADRESSE SALAIRE

---------- ---------- ---------- ---------- ----- --- --
10 James 45 Texas 5000