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 :
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 :
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,05 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 :
Cela produira les résultats suivants :
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;
ID NOM ÂGE ADRESSE SALAIRE
---------- ---------- ---------- ---------- ----- --- --