查询

从一个或多个表中检索结果集。

语法

[ common_table_expression ]
  { subquery | set_operator }
  [ ORDER BY clause | { [ DISTRIBUTE BY clause ] [ SORT BY clause ] } | CLUSTER BY clause ]
  [ WINDOW clause ]
  [ LIMIT clause  ]

subquery
{ SELECT clause |
  VALUES clause |
  ( query ) |
  TABLE [ table_name | view_name ]}

参数

  • 公用表表达式

    公用表表达式 (CTE) 是一个或多个命名查询,可在主查询块内重复使用多次,以避免重复计算或提高复杂嵌套查询的可读性。

  • subquery

    生成中间结果集的几个构造之一。

    • SELECT

      SELECT FROM WHERE 模式组成的子查询。

    • 指定了内联临时表。

    • ** ( query )**

      查询的嵌套调用,其中可能包含集合运算符或公用表表达式。

    • TABLE

      返回整个表或视图。

  • set_operator

    使用 UNIONEXCEPTINTERSECT 运算符组合子查询的构造。

  • ORDER BY

    查询的完整结果集的行顺序。 跨分区对输出行进行排序。 此参数与 SORT BYCLUSTER BYDISTRIBUTE BY 互斥,不能一起指定。

  • DISTRIBUTE BY

    一组表达式,作为对结果行进行重新分区的依据。 此参数与 ORDER BYCLUSTER BY 互斥,不能一起指定。

  • SORT BY

    用于对每个分区中的行进行排序的排序依据。 此参数与 ORDER BYCLUSTER BY 互斥,不能一起指定。

  • CLUSTER BY

    一组表达式,用于对行进行重新分区和排序。 使用此子句与同时使用 DISTRIBUTE BYSORT BY 的效果相同。

  • LIMIT

    语句或子查询可返回的最大行数。 此子句通常与 ORDER BY 结合使用来生成确定的结果。

  • WINDOW

    定义可由 select_query 中的多个窗口函数共享的命名窗口规范。