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.
- Calculer le salaire moyen par département (
DeptAvg). - 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.