Referência da tabela
Aplica-se a: Databricks SQL Databricks Runtime
Uma referência de tabela é uma tabela de resultados intermediária dentro do SQL. Ele pode ser derivado de outros operadores, como funções, junções ou uma subconsulta, fazer referência a uma tabela base diretamente ou ser construído como uma tabela embutida.
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 ] }
Parâmetros
-
Identifica uma tabela que pode conter uma especificação temporal. Consulte Trabalhar com o histórico da tabela Delta Lake para obter detalhes.
Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro de TABLE_OR_VIEW_NOT_FOUND .
Consulte Resolução de colunas, campos, parâmetros e variáveis para obter mais informações sobre a resolução de nomes.
-
Identifica um modo de exibição ou uma expressão de tabela comum (CTE). Se o modo de exibição não puder ser encontrado, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND .
Consulte Resolução de colunas, campos, parâmetros e variáveis para obter mais informações sobre a resolução de nomes.
FLUXO
Retorna uma tabela ou uma função com valor de tabela como uma fonte de streaming. As tabelas não podem ser fornecidas com uma especificação temporal quando usadas com a
STREAM
palavra-chave. As fontes de streaming são mais comumente usadas nas definições de tabelas de streaming.-
Combina duas ou mais relações usando uma junção.
-
Aplica-se a: Databricks SQL Databricks Runtime 12.2 LTS e superior.
Usado para perspetiva de dados; Você pode obter os valores agregados com base no valor específico da coluna.
Antes do Databricks Runtime 12.0 , o PIVOT é limitado a SELECT seguindo a
FROM
cláusula. -
Aplica-se a: Databricks SQL Databricks Runtime 12.2 LTS e superior.
Usado para perspetiva de dados; Você pode dividir vários grupos de colunas em linhas.
[LATERAL] table_valued_function_invocation
Invoca uma função com valor de tabela. Para se referir a colunas expostas por um precedente
table_reference
na mesmaFROM
cláusula, você deve especificarLATERAL
.-
Define uma tabela embutida.
[LATERAL] ( consulta )
Calcula uma referência de tabela usando uma consulta. Uma consulta prefixada por
LATERAL
pode fazer referência a colunas expostas por um precedentetable_reference
na mesmaFROM
cláusula. Tal construção é chamada de consulta correlacionada ou dependente.-
Opcionalmente, reduza o tamanho do conjunto de resultados amostrando apenas uma fração das linhas.
-
Opcionalmente, especifica um rótulo para o
table_reference
. Se o incluicolumn_identifier
s,table_alias
seu número deve corresponder ao número de colunas notable_reference
.
Selecionar na tabela Delta
Além das opções padrão SELECT
, as tabelas Delta suportam as opções de viagem no tempo descritas nesta seção. Para obter detalhes, consulte Trabalhar com o histórico da tabela Delta Lake.
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/horacast('2018-10-18 13:36:32 CEST' as timestamp)
'2018-10-18'
, ou seja, uma cadeia de caracteres de datacurrent_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
da tabela events
, especifique events@v123
.
Exemplo
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Exemplos
-- 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