Pular para o conteúdo principal

referência de tabela

Aplica-se a: cheque marcado sim Databricks SQL cheque marcado sim Databricks Runtime

Uma referência de tabela é uma tabela de resultados intermediária no SQL. Ele pode ser derivado de outros operadores, como funções, junção ou subconsulta, fazer referência direta a uma tabela de base ou ser construído como uma tabela inline.

Sintaxe

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 ] }

Parâmetros

  • nome_da_tabela

    Identifica uma tabela que pode conter uma especificação temporal. Para obter detalhes, consulte Work with Delta Lake table história.

    Se a tabela não puder ser encontrada, o Databricks emitirá um erro TABLE_OR_VIEW_NOT_FOUND.

    Consulte Resolução de colunas, campos, parâmetros e variáveis para obter mais informações sobre resolução de nomes.

    Aplica-se a: ** cheque marcado sim Databricks Runtime 16.0 e posterior

    table_name pode incluir uma especificação de opções.

  • visualização

    Identifica um view ou uma expressão de tabela comum (CTE). Se o site view não puder ser encontrado, o Databricks emitirá um erro TABLE_OR_VIEW_NOT_FOUND.

    Consulte Resolução de colunas, campos, parâmetros e variáveis para obter mais informações sobre resolução de nomes.

  • transmissão

    Retorna uma tabela ou uma função de valor de tabela como uma fonte de transmissão. As tabelas não podem ser fornecidas com uma especificação temporal quando usadas com a palavra-chave STREAM. As fontes de transmissão são mais comumente usadas nas definições das tabelas de transmissão.

  • unir-se

    Combina duas ou mais relações usando um join.

  • Pivot

    Aplica-se a: cheque marcado sim Databricks SQL cheque marcado sim Databricks Runtime 12.2 LTS e acima.

    Usado para perspectiva 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 ao SELECT após a cláusula FROM.

  • SEM PIVÔ

    Aplica-se a: cheque marcado sim Databricks SQL cheque marcado sim Databricks Runtime 12.2 LTS e acima.

    Usado para perspectiva 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 às colunas expostas por um table_reference anterior na mesma cláusula FROM, você deve especificar LATERAL.

  • Valores

    Define uma tabela embutida.

  • [LATERAL] ( consulta )

    computar uma referência de tabela usando uma consulta. Uma consulta prefixada por LATERAL pode fazer referência a colunas expostas por um table_reference anterior na mesma cláusula FROM. Essa construção é chamada de consulta correlacionada ou dependente.

  • TABLESAMPLE

    Opcionalmente, reduza o tamanho do conjunto de resultados amostrando apenas uma fração das linhas.

  • alias de tabela

    Opcionalmente, especifica um rótulo para o site table_reference. Se o table_alias incluir column_identifiers, seu número deverá corresponder ao número de colunas no table_reference.

Selecione na tabela Delta

Além das opções SELECT padrão, as tabelas Delta suportam as opções de viagem do tempo descritas nesta seção. Para obter detalhes, consulte Work with Delta Lake table história.

SintaxeAS OF

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression pode ser qualquer um dos seguintes:

    • '2018-10-18T22:15:12.013Z', isto é, uma string 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 string 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 da saída de DESCRIBE HISTORY table_spec.

Nem timestamp_expression nem version podem ser subconsultas.

Exemplo

SQL
> 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 a data e hora ou a versão. O carimbo de data/hora deve estar no formato yyyyMMddHHmmssSSS. Você pode especificar uma versão após @ adicionando v à versão. Por exemplo, para consultar a versão 123 da tabela events, especifique events@v123.

Exemplo

SQL
> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Exemplos

SQL

-- 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