Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения:
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 ] |
table_reference JOIN clause |
table_reference PIVOT clause |
table_reference 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.
Более подробную информацию о разрешении имен см. в подразделе "Столбец, поле, параметр и переменная".
Область применения: **
Databricks Runtime 16.0" и выше -
Определяет представление или общее табличное выражение (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может ссылаться на столбцы, предоставляемые предыдущимtable_referenceв той же конструкцииFROM. Такая конструкция называется коррелированным или зависимым запросом.-
По желанию уменьшить размер результирующего набора, выбирая только часть строк.
-
При необходимости задает метку для
table_reference. Еслиtable_aliasвключаетcolumn_identifierих число должно соответствовать количеству столбцов вtable_reference.
Выборка из таблицы Delta
Помимо стандартных SELECT параметров, таблицы Delta поддерживают возможности путешествия во времени, описанные в этом разделе. Дополнительные сведения см. в разделе Работа с журналом таблиц 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 hoursdate_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
Примеры
-- Return a data set from a storage location using a credential.
> SELECT * FROM `csv`.`spreadsheets/data.csv` WITH(CREDENTIAL some_credential);
-- Select from a jdbc data source while controlling the fetch size.
> SELECT * FROM jdbcTable WITH(fetchSize = 0);
-- 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
Связанные статьи
- JOIN
- PIVOT предложения
- SELECT (подвыборка)
- UNPIVOT предложения
- VALUES предложения
- вызов функции с табличным значением (TVF)
- TABLESAMPLE предложения