Maison  >  Article  >  base de données  >  Quel est l'ordre d'exécution des clauses GROUP BY, HAVING et WHERE dans SQL Server ?

Quel est l'ordre d'exécution des clauses GROUP BY, HAVING et WHERE dans SQL Server ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-01 02:11:02453parcourir

What is the Order of Execution for GROUP BY, HAVING, and WHERE Clauses in SQL Server?

Séquence d'exécution des clauses Group By, Have et Where dans SQL Server

Comprendre l'ordre d'exécution des clauses dans les requêtes SQL est crucial lorsque vous travaillez avec l’agrégation de données. Cet article examine la séquence des clauses GROUP BY, HAVING et WHERE pour SQL Server.

L'ordre d'exécution de ces clauses est le suivant :

  • FROM & JOIN : La clause FROM sélectionne la table de base et les jointures sont utilisées pour combiner plusieurs tables, déterminant ainsi l'ensemble initial de lignes pour la requête.
  • WHERE : La clause WHERE filtre les lignes sélectionnés par les clauses FROM et JOINs en fonction de conditions spécifiées.
  • GROUP BY : La clause GROUP BY combine des lignes avec des valeurs de colonne identiques en groupes, créant un nouvel ensemble de lignes qui représente le résumé data.
  • HAVING : La clause HAVING filtre les groupes créés par la clause GROUP BY en fonction de valeurs agrégées. Cette clause est similaire à la clause WHERE mais fonctionne sur des groupes plutôt que sur des lignes individuelles.
  • ORDER BY : La clause ORDER BY trie les lignes ou groupes restants en fonction des colonnes spécifiées.
  • LIMIT : La clause LIMIT restreint le nombre de lignes renvoyées par la requête à un nombre ou un pourcentage spécifié.

Exemple :

Considérons la requête suivante :

<code class="sql">SELECT SUM(amount)
FROM sales
WHERE customer = 'John'
GROUP BY product
HAVING COUNT(*) > 10
ORDER BY product;</code>

Dans cette requête, la séquence d'exécution sera :

  1. La clause FROM sélectionne la table des ventes.
  2. La clause WHERE filtre les lignes où le client est « John ».
  3. La clause GROUP BY regroupe les lignes par colonne de produit.
  4. La clause HAVING filtre les groupes où le nombre de lignes dépasse 10. .
  5. La clause ORDER BY trie les groupes par colonne de produit.

Conclusion

La séquence d'exécution de GROUP BY, HAVING, et les clauses WHERE dans SQL Server sont cruciales pour comprendre comment l'agrégation des données est effectuée. En suivant la séquence correcte, vous pouvez vous assurer que vos requêtes renvoient les résultats souhaités et obtiennent des performances optimales.

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