Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks SQL
Databricks Runtime
Skapar en resultatuppsättning från en eller flera tabellreferenser.
Satsen SELECT 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 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
-
Samlar in de kolumner som ska returneras från underfrågan, inklusive exekvering av uttryck, aggregeringar och deduplicering.
-
En källa för indata för
SELECT. Den här indatareferensen kan omvandlas till en direktuppspelningsreferens med hjälp av nyckelordetSTREAMföre referensen.Om
table_referenceär en måttvy får det inte finnas någon annan tabellreferens iFROM-satsen. -
Används tillsammans med generatorfunktioner som
EXPLODE, som genererar en virtuell tabell som innehåller en eller flera rader.LATERAL VIEWtillä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 aggregerade funktioner (
MIN,MAX,COUNT,SUM,AVG) för att gruppera rader baserat på grupperingsuttryck och aggregerade värden i varje grupp. När enFILTERsats är kopplad till en aggregeringsfunktion skickas endast matchande rader till den funktionen. -
Predikaten som raderna som skapas av
GROUP BYfiltreras efter. SatsenHAVINGanvänds för att filtrera rader efter att gruppering har utförts. Om du angerHAVINGutanGROUP BYanger det ettGROUP BYutan grupperingsuttryck (global aggregering). -
Predikaten som används för att filtrera resultatet av fönsterfunktioner. Om du vill använda
QUALIFYmåste minst en fönsterfunktion finnas i SELECT-listan eller QUALIFY-satsen.
Välj i Delta-tabellen
Förutom standardalternativen för 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_expressionkan vara något av följande:-
'2018-10-18T22:15:12.013Z', det vill: en sträng som kan gjutas till en tidsstämpel cast('2018-10-18 13:36:32 CEST' as timestamp)-
'2018-10-18', det vill: en datumsträng current_timestamp() - interval 12 hoursdate_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_specfrå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 version 123 för tabellen eventsanger 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-klausul
- Vanlig tabelluttryck (CTE)
- DISTRIBUTE BY-klausul
- GROUP BY-klausul
- HAVING-klausul
- QUALIFY-klausul
- Tips
- VALUES-klausul
- JOIN
- LATERAL VIEW-klausul
- LIMIT-klausul
- OFFSET-klausul
- ORDER BY-klausul
- PIVOT-klausul
- Fråga
- SELECT-klausul
- Ange operatorer
- SORT BY-klausul
- Star-sats
- TABLESAMPLE-klausul
- tabellvärdesfunktion (TVF)
- tabellreferens
- UNPIVOT-klausul
- WHERE-klausul
- WINDOW-klausul
- fönsterfunktioner