table referência
Aplica-se a: Databricks SQL Databricks Runtime
Uma referência table é um resultado intermediário table dentro do SQL. Ele pode ser derivado de outros operadores, como funções, junções ou uma subconsulta, fazer referência a um table base diretamente ou ser construído como um tableembutido.
Sintaxe
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
-
Identifica um table que pode conter uma especificação temporal. Consulte Trabalhar com o historial do Delta Lake table para obter detalhes.
Se o table não puder ser encontrado, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.
Consulte Column, campo, parâmetro e resolução de variáveis em para mais informações sobre a resolução de nomes.
Aplica-se a: ** Databricks Runtime 16.0 e posterior
table_name
pode incluir uma especificação de opções. -
Identifica uma vista ou uma expressão comum de table (CTE). Se o modo de exibição não puder ser encontrado, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND .
Consulte Column, resolução de campo, parâmetro e variável, para obter mais informações sobre resolução de nomes.
FLUXO
Retorna um table ou uma função de valor table como uma fonte de streaming. Tables não pode ser fornecido com uma especificação temporal quando usado com a palavra-chave
STREAM
. As fontes de streaming são mais comumente usadas nas definições de streaming tables.-
Combina duas ou mais relações usando um join.
-
Aplica-se a: Databricks SQL Databricks Runtime 12.2 LTS e superior.
Usado para perspetiva de dados; Você pode get o values agregado com base no valor column específico.
Antes do Databricks Runtime 12.0, PIVOT é limitado a SELECT seguindo a cláusula
FROM
. -
Aplica-se a: Databricks SQL Databricks Runtime 12.2 LTS e superior.
Usado para perspetiva de dados; é possível dividir vários grupos de column em linhas.
[LATERAL]table_valued_function_invocation
Invoca uma função avaliada em table. Para se referir a columns expostos por um
table_reference
anterior na mesma cláusulaFROM
, deve-se especificarLATERAL
.-
Define um tableembutido.
[LATERAL] ( consulta )
Calcula uma referência de table usando uma consulta. Uma consulta prefixada por
LATERAL
pode fazer referência a columns exposto por umtable_reference
anterior na mesma cláusulaFROM
. Tal construção é chamada de consulta correlacionada ou dependente.-
Opcionalmente, reduza o tamanho do resultado set amostrando apenas uma fração das linhas.
-
Opcionalmente, especifica um rótulo para o
table_reference
. Se otable_alias
incluircolumn_identifier
s, o seu número deve corresponder ao número de columns notable_reference
.
Select na Delta table
Além das opções de SELECT
padrão, a Delta tables suporta as opções de viagem no tempo descritas nesta seção. Para obter detalhes, consulte Trabalhar com o histórico do Delta Lake table.
AS OF
Sintaxe
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
-
timestamp_expression
pode ser qualquer um:-
'2018-10-18T22:15:12.013Z'
, ou seja, uma cadeia de caracteres que pode ser convertida em um carimbo de data/hora cast('2018-10-18 13:36:32 CEST' as timestamp)
-
'2018-10-18'
, ou seja, uma cadeia de caracteres de data current_timestamp() - interval 12 hours
date_sub(current_date(), 1)
- Qualquer outra expressão que seja ou possa ser convertida em um carimbo de data/hora
-
-
version
é um valor longo que pode ser obtido a partir da saída deDESCRIBE HISTORY table_spec
.
Nem timestamp_expression
version
podem ser subconsultas.
Exemplo
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM events VERSION AS OF 123
@
Sintaxe
Use a @
sintaxe para especificar o carimbo de data/hora ou a versão. O carimbo de data/hora deve estar no yyyyMMddHHmmssSSS
formato. Você pode especificar uma versão depois @
antecipando a v
para a versão. Por exemplo, para consultar a versão 123
para o tableevents
, especifique events@v123
.
Exemplo
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Exemplos
-- 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
Artigos relacionados
- JOIN
- PIVOT cláusula
- SELECT
- UNPIVOT cláusula
- VALUES cláusula
- Invocação da função com valor de Table(TVF)
- TABLESAMPLE cláusula