Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Quelle est la difference entre HAVING et WHERE ???

3 réponses
Avatar
Fred
Bonjour, je déboute en SQL et j'aimerais comprendre a différence entre les
clauses HAVING et WHERE, pouvez vous si possible me donner au passage un
exemple ...

Merci de votre aide

Fred

3 réponses

Avatar
Philippe T [MS]
Bonjour,

WHERE est une clause de restriction qui s'applique sur tous type de commande
SELECT, UPDATE, ...

HAVING est plutôt utilisé lorsque l'on a une clause GROUP BY lorsque l'on a
des fonctions d'aggrégation (MAX, SUM, ...)

Si l'on a pas de clause GROUP BY, WHERE et HAVING ont le même comportement
donc dans ces conditions, préférer la clause WHERE plus généralement
utilisée.

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"Fred" wrote in message
news:4266e703$0$19351$
Bonjour, je déboute en SQL et j'aimerais comprendre a différence entre les
clauses HAVING et WHERE, pouvez vous si possible me donner au passage un
exemple ...

Merci de votre aide

Fred




Avatar
Ph. B.
Fred a demandé:
Bonjour, je déboute en SQL et j'aimerais comprendre a différence entre les
clauses HAVING et WHERE, pouvez vous si possible me donner au passage un
exemple ...

Merci de votre aide

Fred



Bonjour,

Ce sont 2 clauses de filtrage mais:
_WHERE s'applique aux lignes résultants du SELECT

/* Liste des personnes de prénom "Pierre" dans ma table */
SELECT NOM, PRENOM
FROM PERSONNE
WHERE PRENOM = "Pierre"

_HAVING ne s'applique qu'après regroupement de lignes issues du
SELECT...GROUP BY

/* Liste des prénoms dont le nombre d'occurrences dans ma table > 10 */
SELECT PRENOM, COUNT(*) AS NOMBRE
FROM PERSONNE
GROUP BY PRENOM
HAVING COUNT(*) > 10

Ce qui peux donner une restriction sur le SELECT suivant d'une autre restriction
sur le regroupement

/* Liste des prénoms dont le nombre d'occurrences dans ma table > 3 */
/* pour les personnes dont le nom commence par A */

SELECT PRENOM, COUNT(*) AS NOMBRE
FROM PERSONNE
WHERE NOM LIKE 'A%' -- Restriction sur le SELECT
GROUP BY PRENOM
HAVING COUNT(*) > 3 -- Restriction sur le regroupement

--
Philippe.
Avatar
Fred BROUARD
WHERE => filtre sur les données des tables
HAVING => filtre sur les résultats des calculs de la requête.

Pour bien comprendre : http://sqlpro.developpez.com/cours/sqlaz/ensembles/#L2" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/cours/sqlaz/ensembles/#L2

A +

Fred a écrit:
Bonjour, je déboute en SQL et j'aimerais comprendre a différence entre les
clauses HAVING et WHERE, pouvez vous si possible me donner au passage un
exemple ...

Merci de votre aide

Fred





--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************