SELECT
Gäller för: Databricks SQL Databricks Runtime
Skapar en resultatuppsättning från en eller flera tabellreferenser.
SELECT
Satsen kan vara en del av en fråga som även innehåller vanliga tabelluttryck (CTE), uppsättningsåtgärder och olika andra satser.
Syntax
SELECT [ hints ] [ ALL | DISTINCT ] { named_expression | star_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 } [, ...] )
Parametrar
-
Tips hjälper Azure Databricks-optimeraren att fatta bättre planeringsbeslut. Azure Databricks stöder tips som påverkar valet av kopplingsstrategier och ompartitionering av data.
ALL
Markera alla matchande rader från tabellreferenserna. Aktiverat som standard.
TYDLIG
Markera alla matchande rader från tabellreferenserna när du har tagit bort dubbletter i resultat.
named_expression
Ett uttryck med ett valfritt tilldelat namn.
-
En kombination av ett eller flera värden, operatorer och SQL-funktioner som utvärderas till ett värde.
-
En valfri kolumnidentifierare som namnger uttrycksresultatet. Om inget
column_alias
anges härleds en Databricks SQL.
-
-
En förkortning för att namnge alla referensbara kolumner i
FROM
-satsen eller en specifik tabellreferenss kolumner eller fält iFROM
-satsen. -
En källa för indata för
SELECT
. Den här indatareferensen kan omvandlas till en direktuppspelningsreferens med hjälp av nyckelordetSTREAM
före referensen. -
Används tillsammans med generatorfunktioner som
EXPLODE
, som genererar en virtuell tabell som innehåller en eller flera rader.LATERAL VIEW
tillämpar raderna på varje ursprunglig utdatarad.I Databricks SQL och från och med Databricks Runtime 12.2 är den här satsen inaktuell. Du bör anropa en tabellvärdegeneratorfunktion som en table_reference.
-
Filtrerar resultatet av
FROM
-satsen baserat på de angivna predikaten. -
De uttryck som används för att gruppera raderna. Detta används tillsammans med mängdfunktioner (
MIN
,MAX
,COUNT
,SUM
,AVG
) för att gruppera rader baserat på grupperingsuttrycken och aggregerade värden i varje grupp. När enFILTER
sats är kopplad till en aggregeringsfunktion skickas endast matchande rader till den funktionen. -
Predikaten som raderna som skapas av
GROUP BY
filtreras efter. SatsenHAVING
används för att filtrera rader efter att gruppering har utförts. Om du angerHAVING
utanGROUP BY
anger det ettGROUP BY
utan grupperingsuttryck (global aggregering). -
Predikaten som används för att filtrera resultatet av fönsterfunktioner. Om du vill använda
QUALIFY
måste minst en fönsterfunktion finnas i SELECT-listan eller KVALIFICERA-satsen.
Välj i Delta-tabellen
Förutom standardalternativen SELECT
stöder Delta-tabeller de tidsresealternativ som beskrivs i det här avsnittet. Mer information finns i Arbeta med Delta Lake-tabellhistorik.
AS OF
syntax
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
timestamp_expression
kan vara något av följande:'2018-10-18T22:15:12.013Z'
, det vill: en sträng som kan gjutas till en tidsstämpelcast('2018-10-18 13:36:32 CEST' as timestamp)
'2018-10-18'
, det vill: en datumsträngcurrent_timestamp() - interval 12 hours
date_sub(current_date(), 1)
- Andra uttryck som är eller kan gjutas till en tidsstämpel
version
är ett långt värde som kan hämtas från utdataDESCRIBE HISTORY table_spec
från .
Varken timestamp_expression
eller version
kan vara underfrågor.
Exempel
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM events VERSION AS OF 123
@
syntax
Använd syntaxen @
för att ange tidsstämpeln eller versionen. Tidsstämpeln måste vara i yyyyMMddHHmmssSSS
format. Du kan ange en version efter @
genom att lägga till en v
till versionen. Om du till exempel vill fråga efter versionen 123
för tabellen events
anger du events@v123
.
Exempel
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Exempel
-- 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
Relaterade artiklar
- CLUSTER BY-sats
- Common Table Expression (CTE)
- DISTRIBUERA BY-sats
- GROUP BY-sats
- HAVING-sats
- KVALIFICERA-sats
- Tips
- VALUES-sats
- ANSLUTA
- LATERAL VIEW-sats
- LIMIT-sats
- OFFSET-sats
- ORDER BY-sats
- PIVOT-sats
- Fråga
- TABLESAMPLE-sats
- Ange operatorer
- SORT BY-sats
- Star-sats
- Tabellvärdesfunktion (TVF)
- tabellreferens
- UNPIVOT-sats
- WHERE-sats
- WINDOW-sats
- Fönsterfunktioner