Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Databricks SQL
Databricks Runtime
Tworzy zestaw wyników z co najmniej jednej referencji do jednej lub więcej tabel .
Klauzula SELECT może być częścią zapytania, które zawiera również typowe wyrażenia tabeli (CTE), operacje zestawu i różne inne klauzule.
Składnia
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 } [, ...] )
Parametry
-
Zbiera kolumny, które mają być zwracane z podzapytania, w tym wykonywanie wyrażeń, agregacji i deduplikacji.
-
Źródło danych wejściowych dla elementu
SELECT. To odwołanie wejściowe można przekształcić w odwołanie do przesyłania strumieniowego przy użyciuSTREAMsłowa kluczowego przed odwołaniem.Jeśli
table_referencejest widokiem metryki, nie może istnieć żadne inne odwołanie do tabeli w klauzuliFROM. -
Używane w połączeniu z funkcjami generatora, takimi jak
EXPLODE, która generuje tabelę wirtualną zawierającą co najmniej jeden wiersz.LATERAL VIEWstosuje wiersze do każdego oryginalnego wiersza wyjściowego.W usłudze Databricks SQL i począwszy od środowiska Databricks Runtime 12.2 ta klauzula jest przestarzała. Należy wywołać funkcję generatora wartości tabeli jako table_reference.
-
Filtruje wynik klauzuli
FROMna podstawie podanych predykatów. -
Wyrażenia używane do grupowania wierszy. Jest to używane w połączeniu z funkcjami agregowanymi (
MIN,MAX,COUNT,SUM,AVG) do grupowania wierszy na podstawie wyrażeń grupowania i agregujących wartości w każdej grupie. Gdy klauzulaFILTERjest dołączona do funkcji agregującej, do tej funkcji są przekazywane tylko pasujące wiersze. -
Predykaty, według których wiersze generowane przez
GROUP BYsą filtrowane. KlauzulaHAVINGjest używana do filtrowania wierszy po wykonaniu grupowania. Jeśli określiszHAVINGwartość bezGROUP BY, oznaczaGROUP BYto bez grupowania wyrażeń (agregacja globalna). -
Predykaty używane do filtrowania wyników funkcji okna. Aby użyć
QUALIFY, co najmniej jedna funkcja okna musi być obecna na liście SELECT lub klauzuli QUALIFY.
Wybierz na tabeli Delta
Oprócz standardowych opcji SELECT tabele Delta obsługują opcje podróży czasowej opisane w tej części. Aby uzyskać więcej informacji, zobacz Praca z historią tabel w Delta Lake.
Składnia aparatu AS OF
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
-
timestamp_expressionmoże być jednym z:-
'2018-10-18T22:15:12.013Z', czyli ciąg, który można rzutować na znacznik czasu cast('2018-10-18 13:36:32 CEST' as timestamp)-
'2018-10-18', czyli ciąg daty current_timestamp() - interval 12 hoursdate_sub(current_date(), 1)- Dowolne inne wyrażenie, które jest lub można rzutować na znacznik czasu
-
-
versionto długa wartość, którą można uzyskać z danych wyjściowych elementuDESCRIBE HISTORY table_spec.
Ani nie timestamp_expressionversion może być podzapytaniem.
Przykład
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM events VERSION AS OF 123
Składnia aparatu @
@ Użyj składni, aby określić znacznik czasu lub wersję. Znacznik czasu 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 dla tabeli events, określ events@v123.
Przykład
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Przykłady
-- 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
Powiązane artykuły
- CLUSTER BY klauzula
- typowe wyrażenie tabeli (CTE)
- DISTRIBUTE BY klauzula
- GROUP BY klauzula
- HAVING klauzula
- QUALIFY klauzula
- Wskazówki
- VALUES klauzula
- JOIN
- LATERAL VIEW klauzula
- LIMIT klauzula
- OFFSET klauzula
- ORDER BY klauzula
- PIVOT klauzula
- Zapytanie
- SELECT klauzula
- Ustawianie operatorów
- SORT BY klauzula
- Star, klauzula
- TABLESAMPLE klauzula
- funkcja tabelaryczna (TVF)
- odniesienie do tabeli
- UNPIVOT klauzula
- WHERE klauzula
- WINDOW klauzula
- Funkcje okna