Condividi tramite


Informazioni di riferimento su table

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

Un riferimento table è un risultato intermedio table all'interno di SQL. Può essere derivata da altri operatori, ad esempio funzioni, join o sottoquery, fare riferimento direttamente a un table di base o essere costruito come tableinline.

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

Parameters

  • table_name

    Identifica un table che può contenere una specifica temporale. Per informazioni dettagliate, vedere Usare Delta Lake table cronologia.

    Se non è possibile trovare il table, Azure Databricks genera un errore TABLE_OR_VIEW_NOT_FOUND.

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

    Si applica a: ** contrassegnato con un segno di spunta Databricks Runtime 16.0 e versioni successive

    table_name può includere una specifica di opzioni.

  • view_name

    Identifica una vista o un'espressione comune table (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 Column, campo, parametro e risoluzione delle variabili.

  • CORRENTE

    Restituisce un table o una funzione con valori table come origine di streaming. Tables non può essere fornito con una specifica temporale se usato con la parola chiave STREAM. Le fonti di streaming vengono utilizzate più comunemente nelle definizioni di streaming tables.

  • JOIN

    Combina due o più relazioni usando un join.

  • PIVOT

    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 get il values aggregato in base a un valore di column specifico.

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

  • 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 column in righe.

  • [LATERAL]table_valued_function_invocation

    Richiama una funzione con valore table. Per fare riferimento a columns esposto da table_reference precedente nella stessa clausola FROM, è necessario specificare LATERAL.

  • VALUES

    Definisce un tableinline.

  • [LATERAL] ( query )

    Calcola un riferimento table usando una query. Una query preceduta da LATERAL può riferirsi a columns esposto da un table_reference precedente nella stessa clausola FROM. Tale costrutto viene chiamato query correlata o dipendente.

  • TABLESAMPLE

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

  • table_alias

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

Select su Delta table

Oltre alle opzioni di SELECT standard, Delta tables supporta le opzioni di viaggio del tempo descritte in questa sezione. Per informazioni dettagliate, vedere Lavorare con Delta Lake table cronologia.

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 effettuare una query sulla versione 123 per il/la tableevents, specificare events@v123.

Esempio

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Esempi


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