WYBIERZ

Dotyczy:zaznacz pole wyboru oznaczone jako yes Databricks SQL check oznaczone tak Databricks Runtime

Komponuje zestaw wyników z co najmniej jednego odwołania do 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ładni

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 } [, ...] )

Parametry

  • Wskazówki

    Wskazówki pomagają optymalizatorowi SQL usługi Databricks podejmować lepsze decyzje dotyczące planowania. Usługa SQL usługi Databricks obsługuje wskazówki wpływające na wybór strategii sprzężenia i ponowne partycjonowanie danych.

  • WSZYSTKIE

    Wybierz wszystkie pasujące wiersze z odwołań do tabeli. Domyślnie włączone.

  • ODRĘBNE

    Zaznacz wszystkie pasujące wiersze z odwołań do tabeli po usunięciu duplikatów w wynikach.

  • named_expression

    Wyrażenie z opcjonalną przypisaną nazwą.

    • Wyrażenie

      Kombinacja co najmniej jednej wartości, operatorów i funkcji SQL, która oblicza wartość.

    • column_alias

      Opcjonalny identyfikator kolumny nazewnictwa wyniku wyrażenia. Jeśli nie column_alias podano usługi Databricks SQL, pochodzi z niego.

  • 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ści table_referencekolumn w każdym table_referenceobiekcie .

    Ta lista nie zawiera kolumny _metadata . Musisz odwoływać się do niego jawnie.

    • Nazwa_tabeli

      Jeśli obecny ogranicza nazwy kolumn do tych w określonej tabeli, do których można odwoływać się.

    • view_name

      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ę.

  • except_clause

    Dotyczy:zaznacz pole wyboru oznaczone jako yes Databricks SQL check oznaczone tak Databricks Runtime 11.0 lub nowsze

    Opcjonalnie przycina kolumny lub pola z zestawu odwołań kolumn określonych w klauzuli select_star .

    • Column_name

      Kolumna, która jest częścią zestawu kolumn, do których można się odwoływać.

    • Field_name

      Odwołanie do pola w kolumnie zestawu kolumn, do których można się odwoływać. Jeśli wykluczysz wszystkie pola z elementu STRUCT, wynik będzie pusty STRUCT.

    Każda nazwa musi odwoływać się do kolumny zawartej w zestawie kolumn, do których można odwoływać się lub do ich pól. W przeciwnym razie usługa SQL usługi Databricks zgłasza błąd UNRESOLVED_COLUMN . Jeśli nazwy nakładają się lub nie są unikatowe, usługa SQL usługi Databricks zgłasza błąd EXCEPT_OVERLAPPING_COLUMNS .

  • table_reference

    Źródło danych wejściowych dla elementu SELECT.

  • WIDOK LATERALNY

    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.

    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.

  • GDZIE

    Filtruje wynik klauzuli FROM na podstawie podanych predykatów.

  • GRUPUJ WEDŁUG

    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 klauzula FILTER jest dołączona do funkcji agregującej, do tej funkcji są przekazywane tylko pasujące wiersze.

  • POSIADANIE

    Predykaty, według których są filtrowane wiersze generowane przez GROUP BY . Klauzula HAVING jest używana do filtrowania wierszy po wykonaniu grupowania. Jeśli określisz HAVING bez GROUP BYparametru , oznacza GROUP BY to bez grupowania wyrażeń (agregacja globalna).

  • KWALIFIKUJĄ SIĘ

    Predykaty używane do filtrowania wyników funkcji okna. Aby użyć QUALIFYfunkcji , 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 Praca z historią tabel usługi Delta Lake.

AS OF Składni

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression może być dowolną z:
    • '2018-10-18T22:15:12.013Z', czyli ciąg, który można rzutować do znacznika czasu
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', czyli ciąg daty
    • 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 elementu DESCRIBE HISTORY table_spec.

Ani timestamp_expressionversion 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@v123wartość .

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