La clause WITH
est généralement utilisée dans une requête de sélection lorsque vous devez effectuer une jointure sur deux sous-requêtes contenant des clauses complexes telles que HAVING
(mais pas nécessairement). D'une manière générale, la clause WITH
ne peut être utilisée que dans une instruction SELECT
.
Mais dans le cas où les données doivent être manipulées, ce qui signifie que vous voulez modifier les données sous certaines conditions ou même supprimer certaines lignes en fonction de certaines conditions complexes, vous préférez aller avec TEMP TABLE
. Bien que la plupart des cas seraient atteints par WITH
, il en résulte généralement un coût de logique complexe, dans TEMP
tableau, vous pouvez avoir un couple d'instructions SQL différentes pour atteindre la même chose.
En outre, TEMP
table est généralement utilisé comme une table de mise en scène plutôt que d'une vue pour SELECT
requête à savoir TEMP
tableau sont utilisés lorsque vous voulez charger des tonnes de données à partir S3
, vous pouvez charger les données dans une table temporaire, analyser les données, supprimer la redondance et enfin fusionner dans la table d'origine en une seule fois.
Alors que la table TEMP
est transitoire uniquement pour la session en cours, WITH
est toujours réévaluée.
Différence clé: la clause with doit être utilisée directement dans la requête associée. Avec les tables temporaires, vous pouvez les utiliser pendant votre session. Donc, leur durée de vie est différente. –