Maison >base de données >SQL >La différence entre où et avoir en SQL

La différence entre où et avoir en SQL

下次还敢
下次还敢original
2024-05-01 21:42:34665parcourir

Les clauses WHERE et HAVING sont toutes deux utilisées pour filtrer les données dans SQL, mais leurs portées sont différentes : la clause WHERE filtre des lignes uniques et la clause HAVING filtre l'ensemble de résultats groupés. La clause WHERE est appliquée avant le regroupement et affecte les lignes de résultats de la fonction d'agrégation ; la clause HAVING est appliquée après le regroupement et affecte les lignes groupées plutôt que les lignes individuelles. La clause WHERE peut filtrer n'importe quelle colonne, tandis que la clause HAVING ne peut filtrer que les résultats des fonctions d'agrégation.

La différence entre où et avoir en SQL

Différence entre les clauses WHERE et HAVING

Dans les requêtes SQL, les clauses WHERE et HAVING sont utilisées pour filtrer les lignes de données, mais elles ont des portées et des objectifs différents. La clause

WHERE

  • s'applique à une seule ligne du tableau.
  • Utilisé pour filtrer les lignes qui répondent à des conditions spécifiées.
  • Postulez avant le regroupement des données.
  • Affecte les lignes de résultats des fonctions d'agrégation. La clause

HAVING

  • est appliquée à l'ensemble de résultats groupés.
  • Utilisé pour filtrer les groupes qui répondent à des conditions spécifiées.
  • Appliqué après le regroupement des données.
  • Affecte les lignes groupées plutôt que les lignes individuelles. Tableau de comparaison

Calendrier de candidature

Avant le regroupementGroupe Après Rows groupés La requête suivante utilise la clause où filtrer les commandes avec des ventes dépassant 1000:
<code class="sql">SELECT * FROM orders WHERE sales_amount > 1000;</code>
La requête suivante utilise la clause Filtrez tous les clients dont les ventes moyennes dépassent 1000 : La clause WHERE peut filtrer n'importe quelle colonne, tandis que la clause HAVING ne peut filtrer que les résultats de la fonction d'agrégation. La clause
Affecte Résultats des résultats de la fonction agrégée
Exemple
<code class="sql">SELECT customer_id, AVG(sales_amount) AS avg_sales
FROM orders
GROUP BY customer_id
HAVING avg_sales > 1000;</code>
Notes
HAVING est généralement utilisée avec la clause GROUP BY, tandis que la clause WHERE peut être utilisée indépendamment.

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!

Déclaration:
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