表引用
适用于:砖的SQL砖运行时
内表引用是一个中间结果表的SQL。它可以派生的从其他运营商,如功能、连接或子查询,直接引用一个基表,或被构造为内联表。
语法
table_reference{table_name(TABLESAMPLE条款](table_alias]|{流table_name(table_alias]|流(table_name)(table_alias]}|view_name(table_alias]|加入条款|主条款|透视条款|(流]table_valued_function(table_alias]|(横向]table_valued_function(table_alias]|值条款|(横向](查询)(TABLESAMPLE条款](table_alias]}
参数
标识一个表可能包含一个时间规范。看到工作与三角洲湖表的历史获取详细信息。
如果表不能发现砖了TABLE_OR_VIEW_NOT_FOUND错误。
看到列、字段和参数分辨率名称解析的更多信息。
标识一个视图或公共表表达式(CTE)。如果视图不能发现砖了TABLE_OR_VIEW_NOT_FOUND错误。
看到列、字段和参数分辨率名称解析的更多信息。
流
返回一个表或表值函数作为流媒体来源。表无法提供时间规范一起使用时
流
关键字。流源中最常用的定义流表。结合使用一个连接两个或两个以上的关系。
适用于:砖的SQL砖运行时12.0及以后。
用于数据透视图;你可以基于特定的列值的聚合值。
适用于:砖的SQL砖运行时12.0及以后。
用于数据透视图;你可以将多个列组分为行。
(横向)table_valued_function_invocation
表值函数调用。引用列前暴露
table_reference
在相同的从
您必须指定条款横向
。定义了一个内联表。
(横向)(查询)
使用一个查询计算表引用。一个查询前缀的
横向
可以参考列由前公开吗table_reference
在相同的从
条款。这样的构造称为相关或依赖查询。横向
支持自砖9.0运行时。只选择结果集的大小减少抽样的一小部分的行。
(可选)指定的标签
table_reference
。如果table_alias
包括column_identifier
年代数量必须匹配的列数table_reference
。
选择在三角洲表
除了标准选择
选项,三角洲表支持在这一节中描述的时间旅行的选择。有关详细信息,请参见工作与三角洲湖表的历史。
作为的
语法
table_identifier时间戳作为的timestamp_expressiontable_identifier版本作为的版本
timestamp_expression
可以是任何一个:2018 - 10 - 18 t22:15:12.013z
,也就是说,可以把一个字符串,该字符串转换为一个时间戳铸造(' 2018-10-1813:36:32c '作为时间戳)
“2018-10-18”
,也就是说,一个日期字符串current_timestamp ()- - - - - -时间间隔12小时
date_sub(当前日期(),1)
其他表达式,也可以把一个时间戳
版本
是一个长期的价值,可以获得输出的吗描述历史table_spec
。
既不timestamp_expression
也不版本
子查询。
例子
——选择所有引用的列从所有表> select *值(1、2)t1 (c1, c2), (3、4) t2值(c3、c4);1 2 3 4,选择所有引用的列一个表>选择t2。*从值(1、2)t1 (c1, c2), (3、4) t2值(c3、c4);3 4——从所有表除了t2选择所有引用的列。c4 > SELECT *除了(c4)值(1、2)t1 (c1, c2), (3、4) t2值(c3、c4);1 2 3——从一个表中选择所有引用的列,除了一个嵌套。> SELECT * (c2.b除外)的值(1,named_struct (' a ' 2 ' b ', 3))当t (c1, c2);1 {“a”: 2},移除所有字段的结果在一个空的结构> SELECT * (c2除外。b, c2.a)值(1,named_struct (' a ' 2 ' b ', 3))当t (c1, c2);1{},重叠导致一个错误的名字> SELECT *除了(c2, c2.a)值(1,named_struct (' a ' 2 ' b ', 3))当t (c1, c2);错误:EXCEPT_OVERLAPPING_COLUMNS