справочник по table
Область применения: Databricks SQL Databricks Runtime
Ссылка table является промежуточным результатом table в SQL. Он может быть производных от других операторов, таких как функции, соединения или вложенный запрос, ссылаться на базовый table напрямую или быть построен как встроенный table.
Синтаксис
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 ] }
Parameters
-
Определяет table, который может содержать темпоральную спецификацию. Дополнительные сведения см. в разделе Работа с Delta Lake table истории.
Если table не найден, Azure Databricks выдает ошибку TABLE_OR_VIEW_NOT_FOUND.
Дополнительные сведения о разрешении имен см. в Column, разрешении полей, параметров и переменных.
Область применения: ** Databricks Runtime 16.0 и более поздние версии
-
Определяет представление или общее выражение table (CTE). Если представление не удается найти Azure Databricks, возникает ошибка TABLE_OR_VIEW_NOT_FOUND .
Дополнительные сведения о разрешении имен см. в Column, разрешении полей, параметров и переменных, а также.
ПОТОК
Возвращает функцию с значением table или table в качестве источника данных для потоковой передачи. Tables не может быть использован с временной спецификацией при использовании с ключевым словом
STREAM
. Источники потокового вещания чаще всего используются в определениях потоковой передачи tables.-
Соединяет две или более связи с помощью join.
-
Область применения: Databricks SQL Databricks Runtime 12.2 LTS и более поздних версий.
Используется для перспективы данных; можно get агрегированные values на основе выбранного значения column.
До Databricks Runtime 12.0 PIVOT ограничено SELECT в соответствии с положением
FROM
. -
Область применения: Databricks SQL Databricks Runtime 12.2 LTS и более поздних версий.
Используется для перспективы данных; можно разделить несколько групп column на строки.
[БОКОВОЙ]table_valued_function_invocation
Вызывает функцию со значением table. Чтобы ссылаться на columns, выявленные предыдущим
table_reference
в том же условииFROM
, необходимо указатьLATERAL
.-
Определяет встроенный объект table.
[LATERAL] ( query )
Вычисляет ссылку table с помощью запроса. Запрос с префиксом
LATERAL
может ссылаться на columns, раскрываемый предшествующимtable_reference
в той же частиFROM
. Такая конструкция называется коррелированным или зависимым запросом.-
При необходимости уменьшите размер результата set путем выборки только доли строк.
-
При необходимости задает метку для
table_reference
. Еслиtable_alias
включаетcolumn_identifier
их число должно соответствовать количеству columns вtable_reference
.
Select в Delta table
Помимо стандартных параметров SELECT
delta tables поддерживают параметры перемещения по времени, описанные в этом разделе. Более подробную информацию см. в разделе Work with Delta Lake table history.
Синтаксис 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
для tableevents
, укажите 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