本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
、、、、MAX
COUNT
SUM
AVG
、等)结合使用,根据分组表达式对行进行分组,并聚合每个组中的值。将子
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
为一个或多个源窗口规范指定别名。
可以在查询的窗口定义中引用源窗口规范。