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 ?

DDD
DDDoriginal
2024-10-30 20:50:30565parcourir

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

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

En programmation SQL, comprendre la séquence d'exécution de diverses clauses est crucial pour une optimisation efficace des requêtes. Cet article approfondira la séquence spécifique des clauses GROUP BY, HAVING et WHERE dans SQL Server.

Séquence d'exécution :

SQL Server exécute les commandes suivantes dans le ordre suivant :

  1. FROM et JOIN : Cette étape identifie et intègre les données des tables spécifiées, en fonction des conditions de jointure (si présentes).
  2. WHERE : La clause WHERE filtre les données sélectionnées à l'étape 1, en supprimant toutes les lignes qui ne répondent pas aux critères spécifiés.
  3. GROUP BY : Lignes de l'étape précédente sont regroupés en fonction des colonnes spécifiées dans la clause GROUP BY.
  4. HAVING : La clause HAVING applique des filtres aux groupes créés à l'étape 3, supprimant tous les groupes qui ne répondent pas aux critères spécifiés. .
  5. ORDER BY : La clause ORDER BY organise les lignes ou groupes restants dans l'ordre spécifié.
  6. LIMIT : La clause LIMIT restreint la résultats à un nombre spécifique de lignes ou de groupes.

Exemple :

Considérez la requête suivante :

SELECT SUM(salary) AS total_salary
FROM employees
WHERE department = 'HR'
GROUP BY department
HAVING SUM(salary) > 50000
ORDER BY total_salary DESC

Dans cette requête , les données sont sélectionnées dans le tableau « salariés » (étape 1). La clause WHERE filtre les données pour inclure uniquement les salariés du service « RH » (étape 2). La clause GROUP BY regroupe les employés d'un même service en groupes (étape 3). La clause HAVING supprime les groupes dont le salaire total est inférieur à 50 000 (étape 4). La clause ORDER BY classe les groupes par ordre décroissant du salaire total (étape 5).

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