A cláusula WITH salva o resultado de uma subconsulta em uma tabela temporária para que instruções SQL subsequentes analisem os dados dessa tabela. Essa cláusula simplifica as instruções SQL e melhora a legibilidade.
Sintaxe
WITH table_name AS (select_statement) select_statement
Parâmetros
|
Parâmetro |
Descrição |
|
table_name |
Nome da tabela temporária. |
|
select_statement |
Instrução SELECT que define os dados da tabela temporária. |
Exemplo
A instrução a seguir calcula o comprimento médio das requisições por host no Logstore website_log e salva o resultado na tabela temporária T1. Depois, repete o cálculo para o Logstore access_log e salva o resultado na tabela temporária T2. Uma cláusula JOIN combina T1 e T2 para recuperar o comprimento médio das requisições dos hosts presentes em ambos os Logstores.
-
Instrução 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