ссылка на таблицу
Область применения: Databricks SQL Databricks Runtime
Ссылка на таблицу — это промежуточная таблица результатов в SQL. Он может быть производным от других операторов, таких как функции, соединения или вложенные запросы, ссылаться непосредственно на базовую таблицу или быть создан в виде встроенной таблицы.
Синтаксис
table_reference
{ table_name [ TABLESAMPLE clause ] [ table_alias ] |
{ STREAM table_name [ table_alias ] | STREAM ( table_name ) [ table_alias ] } |
view_name [ table_alias ] |
JOIN clause |
PIVOT clause |
UNPIVOT clause |
[ STREAM ] table_valued_function [ table_alias ] |
[ LATERAL ] table_valued_function [ table_alias ] |
VALUES clause |
[ LATERAL ] ( query ) [ TABLESAMPLE clause ] [ table_alias ] }
Параметры
-
Определяет таблицу, которая может содержать временную спецификацию. Дополнительные сведения см. в разделе " Работа с журналом таблиц Delta Lake".
Если не удается найти таблицу Azure Databricks, возникает ошибка TABLE_OR_VIEW_NOT_FOUND .
Дополнительные сведения о разрешении имен см. в разделе "Столбец", "Поле", "Параметр" и "Разрешение переменных".
-
Определяет представление или общее табличное выражение (CTE). Если представление не удается найти Azure Databricks, возникает ошибка TABLE_OR_VIEW_NOT_FOUND .
Дополнительные сведения о разрешении имен см. в разделе "Столбец", "Поле", "Параметр" и "Разрешение переменных".
ПОТОК
Возвращает таблицу или табличное значение функции в качестве источника потоковой передачи. Таблицы нельзя предоставить с темпоральной спецификацией при использовании с ключевым словом
STREAM
. Источники потоковой передачи чаще всего используются в определениях таблиц потоковой передачи.-
Объединяет два или несколько отношений путем соединения.
-
Область применения: Databricks SQL Databricks Runtime 12.2 LTS и более поздних версий.
Используется для охвата данных; агрегированные значения можно получить на основе конкретного значения столбца.
До Databricks Runtime 12.0 PIVOT ограничено select , следуя предложению
FROM
. -
Область применения: Databricks SQL Databricks Runtime 12.2 LTS и более поздних версий.
Используется для перспективы данных; Можно разделить несколько групп столбцов на строки.
[БОКОВОЙ] table_valued_function_invocation
Вызывает табличную функцию. Для ссылки на столбцы, представленные в предыдущем
table_reference
в том же предложенииFROM
, необходимо указатьLATERAL
.-
Определяет встроенную таблицу.
[LATERAL] ( query )
Вычисляет ссылку на таблицу с помощью запроса. Запрос с префиксом
LATERAL
может ссылаться на столбцы, указанные в предшествующим параметреtable_reference
в том же предложенииFROM
. Такая конструкция называется коррелированным или зависимым запросом.-
При необходимости уменьшите размер результирующего набора, выбрав только часть строк.
-
При необходимости задает метку для
table_reference
. Еслиtable_alias
включает несколькоcolumn_identifier
, их число должно соответствовать числу столбцов вtable_reference
.
Выбор данных в разностной таблице
Помимо стандартных параметров SELECT
разностные таблицы поддерживают параметры перехода по времени, описанные в этом разделе. Дополнительные сведения см. в разделе " Работа с журналом таблиц Delta Lake".
Синтаксис AS OF
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
timestamp_expression
может быть одним из следующих вариантов:'2018-10-18T22:15:12.013Z'
, то есть строкой, которая может приводиться к метке времени;cast('2018-10-18 13:36:32 CEST' as timestamp)
'2018-10-18'
, то есть строкой даты.current_timestamp() - interval 12 hours
date_sub(current_date(), 1)
- Любое другое выражение, которое является меткой времени или может быть приведено к ней
version
— это длинное значение, которое можно получить из выходных данныхDESCRIBE HISTORY table_spec
.
Ни timestamp_expression
, ни version
не может быть подзапросом.
Пример
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM events VERSION AS OF 123
Синтаксис @
Используйте синтаксис @
для указания метки времени или версии. Метка времени должна быть указана в формате yyyyMMddHHmmssSSS
. Вы можете указать версию после @
, добавив к версии v
. Например, чтобы запросить версию 123
для таблицы events
, укажите events@v123
.
Пример
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Примеры
-- select all referencable columns from all tables
> SELECT * FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
1 2 3 4
-- select all referencable columns from one table
> SELECT t2.* FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
3 4
-- select all referencable columns from all tables except t2.c4
> SELECT * EXCEPT(c4) FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
1 2 3
-- select all referencable columns from a table, except a nested field.
> SELECT * EXCEPT(c2.b) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
1 { "a" : 2 }
-- Removing all fields results in an empty struct
> SELECT * EXCEPT(c2.b, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
1 { }
-- Overlapping names result in an error
> SELECT * EXCEPT(c2, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
Error: EXCEPT_OVERLAPPING_COLUMNS