riferimento a tabella
Si applica a: Databricks SQL 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
-
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.
-
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.-
Combina due o più relazioni utilizzando un join.
-
Si applica a: Databricks SQL 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 . -
Si applica a: Databricks SQL 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 stessaFROM
clausola, è necessario specificareLATERAL
.-
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 precedentetable_reference
nella stessaFROM
clausola. Tale costrutto viene chiamato query correlata o dipendente.-
Facoltativamente, ridurre le dimensioni del set di risultati eseguendo solo il campionamento di una frazione delle righe.
-
Facoltativamente, specifica un'etichetta per l'oggetto
table_reference
. Se includetable_alias
column_identifier
il relativo numero deve corrispondere al numero di colonne nell'oggettotable_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 timestampcast('2018-10-18 13:36:32 CEST' as timestamp)
'2018-10-18'
, ovvero una stringa di datacurrent_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 diDESCRIBE HISTORY table_spec
.
Né timestamp_expression
né version
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