Plusieurs CTE peuvent se suivre dans un même WITH, séparées par des virgules : chacune peut utiliser celles définies avant elle. On construit ainsi un traitement par étapes nommées, du nettoyage vers l'agrégation finale, sans empiler des sous-requêtes imbriquées.
Exemple
WITH a AS (...),
b AS (SELECT * FROM a WHERE ...)
SELECT * FROM b;