Informazioni di riferimento su table
Si applica a: Databricks SQL 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
-
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: ** Databricks Runtime 16.0 e versioni successive
table_name
può includere una specifica di opzioni. -
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.-
Combina due o più relazioni usando un join.
-
Si applica a: Databricks SQL 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
. -
Si applica a: Databricks SQL 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 clausolaFROM
, è necessario specificareLATERAL
.-
Definisce un tableinline.
[LATERAL] ( query )
Calcola un riferimento table usando una query. Una query preceduta da
LATERAL
può riferirsi a columns esposto da untable_reference
precedente nella stessa clausolaFROM
. Tale costrutto viene chiamato query correlata o dipendente.-
Facoltativamente, ridurre le dimensioni del risultato set eseguendo solo il campionamento di una frazione delle righe.
-
Facoltativamente, specifica un'etichetta per l'oggetto
table_reference
. Se iltable_alias
includecolumn_identifier
il relativo numero deve corrispondere al numero di columns neltable_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 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 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