WITH子句支持将子查询结果保存到临时表中,从而实现后续的SQL分析可在临时表中执行。通过WITH子句可简化SQL语句,提高可阅读性。本文介绍WITH子句的基本语法和示例。

语法

WITH table_name AS (select_statement) select_statement

参数说明

参数 说明
table_name 临时表名称。
select_statement 完整的SELECT语句。

示例

在名为website_log的Logstore中分析每台主机对应的平均请求长度,并将分析结果保存到表T1中;在名为access_log的Logstore中分析每台主机对应的平均请求长度,并将分析结果保存到表T2中。然后联合查询表T1和表T2,获取两个表中相同主机对应的平均请求长度。

  • 查询和分析语句
    * | 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
  • 查询和分析结果WITH