表引用
適用於:磚的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