Condividi tramite


riferimento a tabella

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Un riferimento a una tabella è una tabella dei risultati intermedia all'interno di SQL. Può essere derivato da altri operatori, ad esempio funzioni, join o sottoquery, fare riferimento direttamente a una tabella di base o essere costruito come tabella inline.

Sintassi

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

Parametri

  • table_name

    Identifica una tabella che può contenere una specifica temporale. Per informazioni dettagliate, vedere Usare la cronologia delle tabelle Delta Lake.

    Se la tabella non è stata trovata, Azure Databricks genera un errore di TABLE_OR_VIEW_NOT_FOUND .

    Per altre informazioni sulla risoluzione dei nomi, vedere Colonna, campo, parametro e risoluzione delle variabili.

  • view_name

    Identifica una vista o un'espressione di tabella comune (CTE). Se non è possibile trovare la vista azure Databricks genera un errore di TABLE_OR_VIEW_NOT_FOUND .

    Per altre informazioni sulla risoluzione dei nomi, vedere Colonna, campo, parametro e risoluzione delle variabili.

  • CORRENTE

    Restituisce una tabella o una funzione con valori di tabella come origine di streaming. Le tabelle non possono essere fornite con una specifica temporale se usata con la STREAM parola chiave . Le origini di streaming vengono usate più comunemente nelle definizioni delle tabelle di streaming.

  • JOIN

    Combina due o più relazioni utilizzando un join.

  • PERNO

    Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive.

    Usato per la prospettiva dei dati; è possibile ottenere i valori aggregati in base a un valore di colonna specifico.

    Prima di Databricks Runtime 12.0 PIVOT è limitato a SELECT dopo la FROM clausola .

  • UNPIVOT

    Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive.

    Usato per la prospettiva dei dati; è possibile suddividere più gruppi di colonne in righe.

  • [LATERAL] table_valued_function_invocation

    Richiama una funzione con valori di tabella. Per fare riferimento alle colonne esposte da un precedente table_reference nella stessa FROM clausola, è necessario specificare LATERAL.

  • VALUES

    Definisce una tabella inline.

  • [LATERAL] ( query )

    Calcola un riferimento a una tabella usando una query. Una query preceduta da LATERAL può fare riferimento a colonne esposte da un precedente table_reference nella stessa FROM clausola. Tale costrutto viene chiamato query correlata o dipendente.

  • TABLESAMPLE

    Facoltativamente, ridurre le dimensioni del set di risultati eseguendo solo il campionamento di una frazione delle righe.

  • table_alias

    Facoltativamente, specifica un'etichetta per l'oggetto table_reference. Se include table_alias column_identifieril relativo numero deve corrispondere al numero di colonne nell'oggetto table_reference.

Selezionare la tabella Delta

Oltre alle opzioni standard SELECT , le tabelle Delta supportano le opzioni di viaggio del tempo descritte in questa sezione. Per informazioni dettagliate, vedere Usare la cronologia delle tabelle Delta Lake.

Sintassi AS OF

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression può essere uno qualsiasi di:
    • '2018-10-18T22:15:12.013Z'ovvero una stringa di cui è possibile eseguire il cast a un timestamp
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', ovvero una stringa di data
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Qualsiasi altra espressione che è o può essere eseguita il cast a un timestamp
  • version è un valore long che può essere ottenuto dall'output di DESCRIBE HISTORY table_spec.

timestamp_expressionversion possono essere sottoquery.

Esempio

> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'

> SELECT * FROM events VERSION AS OF 123

Sintassi @

Usare la @ sintassi per specificare il timestamp o la versione. Il timestamp deve essere in yyyyMMddHHmmssSSS formato . È possibile specificare una versione dopo @ anteponendo una v alla versione. Ad esempio, per eseguire una query sulla versione 123 per la tabella events, specificare events@v123.

Esempio

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Esempi

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