SELECT
Komponuje zestaw wyników z co najmniej jednej tabeli.
Klauzula SELECT
może być częścią zapytania, które obejmuje również wspólne wyrażenia tabeli (CTE), operacje zestawów i różne inne klauzule.
Składnia
SELECT [ hints ] [ ALL | DISTINCT ] { named_expression | star_clause } [, ...]
FROM from_item [, ...]
[ LATERAL VIEW clause ]
[ PIVOT clause ]
[ WHERE clause ]
[ GROUP BY clause ]
[ HAVING clause]
[ QUALIFY clause ]
from_item
{ table_name [ TABLESAMPLE clause ] [ table_alias ] |
JOIN clause |
[ LATERAL ] table_valued_function [ table_alias ] |
VALUES clause |
[ LATERAL ] ( query ) [ TABLESAMPLE clause ] [ table_alias ] }
named_expression
expression [ column_alias ]
star_clause
[ { table_name | view_name } . ] *
Parametry
-
Wskazówki pomagają optymalizatorowi środowiska uruchomieniowego Databricks podejmować lepsze decyzje dotyczące planowania. Databricks Runtime obsługuje wskazówki wpływające na wybór strategii sprzężenia i ponowne partycjonowanie danych.
ALL
Wybierz wszystkie pasujące wiersze z relacji. Domyślnie włączony.
ODRĘBNE
Zaznacz wszystkie pasujące wiersze z relacji po usunięciu duplikatów w wynikach.
named_expression
Wyrażenie z opcjonalną przypisaną nazwą.
-
Kombinacja co najmniej jednej wartości, operatorów i SQL funkcji, które są obliczane na wartość.
-
Opcjonalny identyfikator kolumny nazewnictwa wyniku wyrażenia. Jeśli nie
column_alias
podano Databricks Runtime, zostanie on pochodny.
-
star_clause
Skrócona nazwa wszystkich kolumn, do których można odwoływać się w klauzuli
FROM
. Lista kolumn jest uporządkowana według kolejności s i kolejnościfrom_item
kolumn w każdymfrom_item
obiekcie .Ta lista nie zawiera kolumny _metadata . Musisz odwoływać się do niego jawnie.
-
Jeśli obecny ogranicza nazwy kolumn do tych w określonej tabeli, do których można odwoływać się.
-
Jeśli określono limity kolumn, które mają zostać rozwinięte do tych w określonym widoku, do których można odwoływać się.
-
from_item
Źródło danych wejściowych dla elementu
SELECT
. Jeden z poniższych programów:-
Identyfikuje tabelę, która może zawierać specyfikację czasową. Aby uzyskać szczegółowe informacje, zobacz Wykonywanie zapytań dotyczących starszej migawki tabeli (podróży czasowej).
-
Identyfikuje widok.
-
Łączy co najmniej dwie relacje przy użyciu sprzężenia.
[ LATERAL ] table_valued_function
Wywołuje funkcję tabeli. Aby odwołać się do kolumn uwidocznionych przez poprzednią
from_item
klauzulę w tej samejFROM
klauzuli, należy określićLATERAL
wartość .-
Definiuje tabelę śródliniową.
[ LATERAL ] ( zapytanie )
Oblicza relację przy użyciu zapytania. Zapytanie poprzedzone
LATERAL
prefiksem może odwoływać się do kolumn uwidocznionych przez poprzedniąfrom_item
klauzulęFROM
. Taka konstrukcja jest nazywana skorelowanym lub zależnym zapytaniem.LATERAL
jest obsługiwany od czasu Databricks Runtime 9.0.-
Opcjonalnie zmniejsz rozmiar zestawu wyników, próbkując tylko ułamek wierszy.
-
Opcjonalnie określa etykietę dla elementu
from_item
. Jeśli parametrtable_alias
zawieracolumn_identifier
ich liczbę, musi być zgodna z liczbą kolumn w elemeciefrom_item
.
-
-
Używane do perspektywy danych; Można uzyskać zagregowane wartości na podstawie określonej wartości kolumny.
-
Używany w połączeniu z funkcjami generatora, takimi jak
EXPLODE
, która generuje tabelę wirtualną zawierającą co najmniej jeden wiersz.LATERAL VIEW
stosuje wiersze do każdego oryginalnego wiersza wyjściowego. -
Filtruje wynik klauzuli
FROM
na podstawie podanych predykatów. -
Wyrażenia używane do grupowania wierszy. Jest to używane w połączeniu z funkcjami agregacji (
MIN
,MAX
,COUNT
,SUM
,AVG
) do grupowania wierszy na podstawie wyrażeń grupowania i wartości zagregowanych w każdej grupie. Gdy klauzulaFILTER
jest dołączona do funkcji agregującej, do tej funkcji są przekazywane tylko pasujące wiersze. -
Predykaty, według których są filtrowane wiersze generowane przez
GROUP BY
. KlauzulaHAVING
jest używana do filtrowania wierszy po wykonaniu grupowania. Jeśli określiszHAVING
bezGROUP BY
parametru , oznaczaGROUP BY
to bez grupowania wyrażeń (agregacja globalna). -
Predykaty używane do filtrowania wyników funkcji okna. Aby użyć
QUALIFY
funkcji , wymagana jest co najmniej jedna funkcja okna na liście SELECT lub klauzuli QUALIFY.
Wybierz tabelę delty
Oprócz standardowych SELECT
opcji tabel delta obsługuje opcje podróży czasowej opisane w tej sekcji. Aby uzyskać szczegółowe informacje, zobacz Wykonywanie zapytań o starszą migawkę tabeli (podróż czasowa).
AS OF
Składni
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
gdzie
timestamp_expression
może być dowolną z:'2018-10-18T22:15:12.013Z'
, czyli ciąg, który można rzutować do znacznika czasucast('2018-10-18 13:36:32 CEST' as timestamp)
'2018-10-18'
, czyli ciąg daty- W środowisku Databricks Runtime 6.6 i nowszym:
current_timestamp() - interval 12 hours
date_sub(current_date(), 1)
- Dowolne inne wyrażenie, które jest lub można rzutować do znacznika czasu
version
to długa wartość, którą można uzyskać z danych wyjściowych elementuDESCRIBE HISTORY table_spec
.
Ani timestamp_expression
version
nie może być podquery.
Przykład
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM delta.`/mnt/delta/events` VERSION AS OF 123
@
Składni
Użyj składni, @
aby określić znacznik czasu lub wersję. Sygnatura czasowa musi być w yyyyMMddHHmmssSSS
formacie. Możesz określić wersję po @
, poprzedzając v
element do wersji. Aby na przykład wysłać zapytanie o wersję 123
tabeli events
, określ events@v123
wartość .
Przykład
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Pokrewne artykuły:
- CLUSTER BY, klauzula
- Wspólne wyrażenie tabeli (CTE)
- DISTRIBUTE BY, klauzula
- GROUP BY, klauzula
- HAVING, klauzula
- Klauzula QUALIFY
- Wskazówki
- KLAUZULA VALUES
- DOŁĄCZYĆ
- LATERAL VIEW, klauzula
- LIMIT, klauzula
- Klauzula ORDER BY
- PIVOT, klauzula
- Zapytanie
- TABLESAMPLE, klauzula
- Ustawianie operatorów
- SORT BY, klauzula
- Funkcja wartości tabeli (TVF)
- Klauzula WHERE
- KLAUZULA WINDOW
- Funkcje okien