Retour au cours

Expressions de Table Communes (CTEs) utilisant WITH

Principes Fondamentaux des Bases de Données : De Zéro à Héros

Leçon 31 : Expressions de Table Communes (CTEs) utilisant WITH

Les Expressions de Table Communes (CTEs), définies à l'aide de la clause WITH, offrent un moyen d'écrire des requêtes complexes de manière beaucoup plus claire, lisible et structurée. Considérez une CTE comme un ensemble de résultats temporaire et nommé qui n'existe que pour la durée de l'exécution de la requête actuelle.

Syntaxe de Base

sql WITH [nom_cte] AS ( -- Définir l'instruction SELECT pour l'ensemble de résultats temporaire SELECT column1, aggregate_function(column2) FROM table GROUP BY column1 )

-- Maintenant, référencer la CTE dans la requête principale SELECT * FROM [nom_cte] WHERE [condition];

Exemple : Trouver les Gros Salariés par Département

C'est la même logique que l'exemple de sous-requête, mais décomposée en étapes plus claires.

  1. Calculer le salaire moyen par département (DeptAvg).
  2. Utiliser ce résultat temporaire pour trouver les employés qui gagnent plus que la moyenne de leur département.

sql WITH DepartmentAverages AS ( SELECT Department, AVG(Salary) AS AvgSalary FROM Employees GROUP BY Department )

SELECT E.Name, E.Salary, DA.AvgSalary FROM Employees E JOIN DepartmentAverages DA ON E.Department = DA.Department WHERE E.Salary > DA.AvgSalary; -- Filtrage basé sur le résultat de la CTE

Les CTEs améliorent la lisibilité du code et vous permettent de réutiliser une logique complexe au sein d'une seule requête.