Maison > base de données > tutoriel mysql > OÙ ou HAVING en SQL : quand utiliser chaque clause pour le filtrage des données ?

OÙ ou HAVING en SQL : quand utiliser chaque clause pour le filtrage des données ?

DDD
Libérer: 2025-01-14 17:21:43
original
835 Les gens l'ont consulté

WHERE vs. HAVING in SQL: When to Use Each Clause for Data Filtering?

Différences et utilisation des clauses WHERE et HAVING en SQL

SQL (Structured Query Language) est un outil puissant pour manipuler et récupérer les données d'une base de données. Lorsque vous utilisez des fonctions d'agrégation de données telles que COUNT() ou SUM(), il est important de comprendre la différence entre les clauses HAVING et WHERE.

Aperçu

La clause WHERE est utilisée pour filtrer les lignes avant l'agrégation. Il évalue la condition par rapport aux lignes individuelles du tableau.

La clause HAVING est utilisée pour filtrer les lignes après l'agrégation. Il évalue les conditions sur la base de données agrégées.

Différences clés

La différence la plus critique entre HAVING et WHERE est le moment de leur filtrage :

  • OÙ : Filtrez les lignes avant l'agrégation.
  • HAVING : Filtrer les lignes après agrégation.

Exemple

Considérons l'exemple suivant :

<code class="language-sql">SELECT City, COUNT(*) AS AddressCount
FROM Address
WHERE State = 'MA'
GROUP BY City</code>
Copier après la connexion

Cette requête utilise la clause WHERE pour sélectionner toutes les adresses situées dans l'état "MA" avant regroupement. Il regroupe ensuite les résultats par ville et compte le nombre d'adresses dans chaque ville.

Maintenant, modifions la requête à l'aide de la clause HAVING :

<code class="language-sql">SELECT City, COUNT(*) AS AddressCount
FROM Address
WHERE State = 'MA'
GROUP BY City
HAVING AddressCount > 5</code>
Copier après la connexion

Dans cette requête modifiée, la clause HAVING est utilisée pour filtrer les résultats après agrégation. Il sélectionne uniquement les villes comportant plus de 5 adresses.

Quand utiliser OÙ et HAVING

  • WHERE : est idéal pour filtrer des lignes individuelles avant de les agréger, par exemple en fonction d'un attribut ou d'une valeur spécifique.
  • HAVING : est utile pour filtrer les statistiques agrégées, telles que la sélection de groupes en fonction de nombres minimum ou maximum, de moyennes ou d'autres données agrégées.

En comprenant la différence de temps entre WHERE et HAVING, les développeurs peuvent récupérer efficacement les données de la base de données en fonction de conditions spécifiques avant ou après l'agrégation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal