La cláusula WITH guarda el resultado de una subconsulta en una tabla temporal para que las instrucciones SQL posteriores puedan analizar los datos de dicha tabla. Las cláusulas WITH simplifican las instrucciones SQL y mejoran su legibilidad.
Sintaxis
WITH table_name AS (select_statement) select_statement
Parámetros
|
Parámetro |
Descripción |
|
table_name |
Nombre de la tabla temporal. |
|
select_statement |
Instrucción SELECT que define los datos de la tabla temporal. |
Ejemplo
A continuación, la instrucción calcula la longitud promedio de solicitud por host en un logstore llamado website_log y guarda el resultado en la tabla temporal T1; después realiza lo mismo para un logstore llamado access_log y guarda el resultado en la tabla temporal T2. Una cláusula JOIN combina T1 y T2 para obtener la longitud promedio de solicitud de los hosts presentes en ambos logstores.
-
Instrucción de consulta
* | with T1 AS ( SELECT host, avg(request_length) length FROM website_log GROUP BY host ), T2 AS ( SELECT host, avg(request_length) length FROM access_log GROUP BY host ) SELECT T1.host, T1.length, T2.length FROM T1 JOIN T2 ON T1.host = T2.host