Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Databricks Runtime
Compone un insieme di risultati da uno o più riferimenti di tabella .
La clausola SELECT può far parte di una query che include anche espressioni di tabella comuni (CTE), operazioni set e varie altre clausole.
Sintassi
SELECT clause
FROM table_reference [, ...]
[ LATERAL VIEW clause ]
[ WHERE clause ]
[ GROUP BY clause ]
[ HAVING clause]
[ QUALIFY clause ]
named_expression
expression [ column_alias ]
star_clause
[ { table_name | view_name } . ] * [ except_clause ]
except_clause
EXCEPT ( { column_name | field_name } [, ...] )
Parametri
-
Raccoglie le colonne da restituire dalla sottoquery, inclusa l'esecuzione di espressioni, aggregazioni e deduplicazione.
-
Origine di input per l'oggetto
SELECT. Questo riferimento di input può essere trasformato in un riferimento di streaming usando laSTREAMparola chiave prima del riferimento.table_referenceSe è una vista metrica, nella clausola non deve essere presente alcun altro riferimento allaFROMtabella. -
Usato insieme a funzioni del generatore, ad esempio
EXPLODE, che genera una tabella virtuale contenente una o più righe.LATERAL VIEWapplica le righe a ogni riga di output originale.In Databricks SQL e a partire da Databricks Runtime 12.2 questa clausola è deprecata. È necessario richiamare una funzione generatore con valori di tabella come table_reference.
-
Filtra il risultato della
FROMclausola in base ai predicati forniti. -
Espressioni utilizzate per raggruppare le righe. Viene usato insieme alle funzioni di aggregazione (
MIN,MAX,COUNT,SUM,AVG) per raggruppare le righe in base alle espressioni di raggruppamento e ai valori aggregati in ogni gruppo. Quando unaFILTERclausola è associata a una funzione di aggregazione, solo le righe corrispondenti vengono passate a tale funzione. -
Predicati in base ai quali vengono filtrate le righe generate da
GROUP BY. LaHAVINGclausola viene utilizzata per filtrare le righe dopo l'esecuzione del raggruppamento. Se si specificaHAVINGsenzaGROUP BY, indica un oggettoGROUP BYsenza raggruppamento di espressioni (aggregazione globale). -
Predicati utilizzati per filtrare i risultati delle funzioni finestra. Per usare
QUALIFY, è necessario che almeno una funzione finestra sia presente nell'elenco SELECT o nella clausola QUALIFY.
Selezionare la tabella Delta
Oltre alle opzioni standard di SELECT, le tabelle Delta supportano le opzioni di viaggio del tempo descritte in questa sezione. Per informazioni dettagliate, vedere Lavorare con la cronologia delle tabelle Delta Lake.
Sintassi AS OF
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
-
timestamp_expressionpuò 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 hoursdate_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
Articoli correlati
- CLUSTER BY clausola
- CTE (Common Table Expression)
- DISTRIBUTE BY clausola
- GROUP BY clausola
- HAVING clausola
- QUALIFY clausola
- Hint
- VALUES clausola
- JOIN
- LATERAL VIEW clausola
- LIMIT clausola
- OFFSET clausola
- ORDER BY clausola
- PIVOT clausola
- Quesito
- SELECT clausola
- Impostare operatori
- SORT BY clausola
- Clausola Star
- TABLESAMPLE clausola
- funzione con valori di tabella (TVF)
- riferimento alla tabella
- UNPIVOT clausola
- WHERE clausola
- WINDOW clausola
- funzioni finestra