MySQL HAVING

La clause HAVING est utilisée dans l’instruction SELECT pour spécifier des conditions de filtre pour un groupe de lignes ou d’agrégats.

La clause HAVING est souvent utilisée avec la clause GROUP BY pour filtrer des groupes en fonction d’une condition spécifiée. Si la clause GROUP BY est négligé, la clause HAVING se comporte comme la clause WHERE.
 
 
Voici la syntaxe de la clause HAVING:

SELECT colonne1, colonne2, ...
FROM tableName
WHERE condition
GROUP BY colonneX
HAVING condition
ORDER BY colonneX;

MySQL évalue la clause HAVING après les clauses SELECT, FROM, WHERE, et GROUP BY et avant les clauses ORDER BY et LIMIT.
 

 
Prenons quelques exemples d’utilisation de la clause HAVING pour voir comment elle fonctionne. Pour cela nous allons utiliser la table « stock ».
 

 

Exemple – Utilisation de la fonction SUM

Regardons un exemple de la clause HAVING qui utilise la fonction SUM.

Vous pouvez également utiliser la fonction SUM pour renvoyer le nom du produit et la quantité totale (pour ce produit). La clause HAVING filtrera les résultats afin que seuls les produits dont la quantité totale soit supérieure à 5 soient renvoyés.

SELECT produit, SUM(qte) AS "Quantité totale"
FROM stock
GROUP BY produit
HAVING SUM(qte) > 5;


Liste des commandes MySQL

Exemple – Utilisation de la fonction MIN

Regardons maintenant comment utiliser la clause HAVING avec la fonction MIN dans MySQL.

Vous pouvez également utiliser la fonction MIN pour renvoyer le nom de chaque produit et la quantité minimum dans le stock. La clause HAVING renverra uniquement les produits où la quantité minimum est inférieur à 5.

SELECT produit, MIN(qte) AS "Quantité la plus base"
FROM stock
GROUP BY produit
HAVING MIN(qte) < 5;


 
 

Exemple – Utilisation de la fonction MAX

Regardons maintenant comment utiliser la clause HAVING avec la fonction MAX dans MySQL.

Vous pouvez également utiliser la fonction MAX pour renvoyer le nom de chaque produit et la quantité maximum dans le stock. La clause MySQL HAVING renverra uniquement les produits où la quantité maximum est inférieur à 5.

SELECT produit, MAX(qte) AS "Quantité MAX"
FROM stock
GROUP BY produit
HAVING MAX(qte) > 5;


 

Exemple – Utilisation de la fonction COUNT

Regardons comment utiliser la clause HAVING avec la fonction COUNT dans MySQL.

Vous pouvez utiliser la fonction COUNT pour renvoyer le nom du produit et le nombre de commandes (pour ce produit) qui se trouvent dans la catégorie « Ordinateur ». La clause HAVING va filtrer les résultats afin que seuls les produits avec plus de 5 commandes soient retournés.

SELECT produit, COUNT(*) AS "Nombre de commandes"
FROM stock
WHERE categorie = 'ordinateur'
GROUP BY produit
HAVING COUNT(*) > 5;


Questions techniques sur MYSQL

Une réflexion sur “MySQL HAVING

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *