Ссылка на таблицу
Область применения: 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] ( query )
Вычисляет ссылку на таблицу с помощью запроса. Запрос с префиксом
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 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
Примеры
-- 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 (subselect)
- UNPIVOT предложения
- VALUES предложения
- вызов функции с табличным значением (TVF)
- TABLESAMPLE предложения