SELECT 子句 - 亚马逊 OpenSearch 服务

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SELECT 子句

注意

要查看哪些 AWS 数据源集成支持此SQL命令,请参阅支持的 OpenSearch SQL命令和函数

OpenSearch SQL支持用于从一个或多个表中检索结果集的SELECT语句。下一节描述了查询的整体语法和不同的查询结构。

语法

select_statement [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select_statement, ... ] [ ORDER BY { expression [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [ , ... ] } ] [ SORT BY { expression [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [ , ... ] } ] [ WINDOW { named_window [ , WINDOW named_window, ... ] } ] [ LIMIT { ALL | expression } ]

Wh select_statement ile 被定义为:

SELECT [ ALL | DISTINCT ] { [ [ named_expression ] [ , ... ] ] } FROM { from_item [ , ... ] } [ PIVOT clause ] [ UNPIVOT clause ] [ LATERAL VIEW clause ] [ ... ] [ WHERE boolean_expression ] [ GROUP BY expression [ , ... ] ] [ HAVING boolean_expression ]

参数

  • ALL

    从关系中选择所有匹配的行,默认情况下处于启用状态。

  • DISTINCT

    删除结果中的重复项后,从关系中选择所有匹配的行。

  • 命名表达式

    具有指定名称的表达式。通常,它表示列表达式。

    语法:expression [[AS] alias]

  • from_item

    表格关系

    加入关系

    枢轴关系

    取消透视关系

    表值函数

    内联表

    [ LATERAL ] ( Subquery )

  • PIVOT

    PIVOT子句用于数据透视。您可以根据特定的列值获取聚合值。

  • UNPIVOT

    UNPIVOT子句将列转换为行。与之相反PIVOT,但值的聚合除外。

  • LATERAL VIEW

    LATERAL VIEW子句与生成器函数(例如)结合使用EXPLODE,后者将生成包含一行或多行的虚拟表。

    LATERAL VIEW会将这些行应用于每个原始输出行。

  • WHERE

    根据提供的谓词筛选FROM子句的结果。

  • GROUP由

    指定用于对行进行分组的表达式。

    它与聚合函数(MIN、、、、MAXCOUNTSUMAVG、等)结合使用,根据分组表达式对行进行分组,并聚合每个组中的值。

    将子FILTER句附加到聚合函数时,仅将匹配的行传递给该函数。

  • HAVING

    指定筛选生成的行的GROUP BY谓词。

    HAVING子句用于在执行分组后筛选行。

    如果HAVING不指定GROUP BY,则表示GROUP BY不带分组表达式(全局聚合)。

  • ORDER由

    指定查询完整结果集的行顺序。

    输出行按分区排序。

    此参数与SORT BY和互斥DISTRIBUTE BY且不能同时指定。

  • SORT由

    指定每个分区中行的排序顺序。

    此参数与互斥ORDER BY且不能同时指定。

  • LIMIT

    指定语句或子查询可以返回的最大行数。

    此子句主要与结合使用ORDER BY,以产生确定性结果。

  • 布尔表达式

    指定任何计算结果类型为 boolean 的表达式。

    可以使用逻辑运算符 (AND,OR) 将两个或多个表达式组合在一起。

  • expression

    指定一个或多个值、运算符和计算结果为一个值的SQL函数的组合。

  • named_window

    为一个或多个源窗口规范指定别名。

    可以在查询的窗口定义中引用源窗口规范。