SELECT-Klausel (Databricks SQL)

Erstellt ein Resultset aus einer oder mehr Tabellen. Die -Klausel kann Teil einer Abfrage sein, die auch allgemeine SELECT Tabellenausdrücke (Common Table Expressions, CTE), Set-Vorgänge und verschiedene andere Klauseln enthält.

Syntax

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 [ table_alias ] |
  JOIN clause |
  table_valued_function [ table_alias ] |
  VALUES clause |
  [ LATERAL ] ( query ) [ table_alias ] }

named_expression
   expression [ column_alias ]

star_clause
   [ { table_name | view_name } . ] *

Parameter

  • Hinweise

    Hinweise helfen dem Databricks-SQL, bessere Planungsentscheidungen zu treffen. Databricks SQL Unterstützt Hinweise, die die Auswahl von Verknüpfungsstrategien und die Neupartitionierung der Daten beeinflussen.

  • ALL

    Wählen Sie alle übereinstimmenden Zeilen aus der Beziehung aus. Standardmäßig aktiviert.

  • DISTINCT

    Wählen Sie alle übereinstimmenden Zeilen aus der Beziehung aus, nachdem Duplikate in den Ergebnissen entfernt wurden.

  • named_expression

    Ein Ausdruck mit einem optional zugewiesenen Namen.

    • expression

      Eine Kombination aus einem oder mehr Werten, Operatoren und SQL, die zu einem Wert ausgewertet werden.

    • column_alias

      Ein optionaler Spaltenbezeichner, der das Ausdrucksergebnis bezeichnet. Wenn kein column_alias bereitgestellt wird, wird databricks SQL von einer ab.

  • star_clause

    Eine kurze Hand zum Benennen aller referenzierbaren Spalten in der FROM -Klausel. Die Liste der Spalten wird nach der Reihenfolge von from_item s und der Reihenfolge der Spalten innerhalb der einzelnen geordnet. from_item

    • table_name

      Wenn vorhanden, werden die spalten, die benannt werden sollen, auf die in der angegebenen referenzierbaren Tabelle beschränkt.

    • view_name

      Wenn angegeben, werden die Spalten, die erweitert werden sollen, auf die spalten in der angegebenen referenzierbaren Sicht beschränkt.

  • from_item

    Eine Eingabequelle für SELECT . Einer der folgenden:

    • table_name

      Identifiziert eine Tabelle, die eine temporale Spezifikation enthalten kann. Weitere Informationen finden Sie unter Abfragen einer älteren Momentaufnahme einer Tabelle (Zeitreise).

    • view_name

      Identifiziert eine Ansicht.

    • JOIN

      Kombiniert zwei oder mehr Beziehungen mithilfe eines Joins.

    • table_valued_function

      Ruft eine Tabellenfunktion auf.

    • VALUES

      Definiert eine Inlinetabelle.

    • [ LATERAL ] ( Abfrage )

      Berechnet eine Beziehung mithilfe einer Abfrage. Eine Abfrage mit dem Präfix LATERAL kann auf Spalten verweisen, die von einem from_item vorangehenden in derselben Klausel verfügbar FROM gemacht werden. Ein solches Konstrukt wird als korrelierte oder abhängige Abfrage bezeichnet.

  • table_alias

    Gibt optional eine Bezeichnung für from_item an. Wenn table_alias enthält, column_identifier muss deren Anzahl mit der Anzahl der Spalten in from_item übereinstimmen.

  • PIVOT

    Wird für die Datenperspektive verwendet; Sie können die aggregierten Werte basierend auf einem bestimmten Spaltenwert erhalten.

  • LATERAL VIEW

    Wird in Verbindung mit Generatorfunktionen wie verwendet, wodurch eine virtuelle Tabelle generiert wird, EXPLODE die mindestens eine Zeile enthält. LATERAL VIEW wendet die Zeilen auf jede ursprüngliche Ausgabezeile an.

  • WO

    Filtert das Ergebnis der FROM -Klausel basierend auf den angegebenen Prädikaten.

  • GROUP BY

    Die Ausdrücke, die zum Gruppieren der Zeilen verwendet werden. Dies wird in Verbindung mit Aggregatfunktionen ( , , , , ) verwendet, um Zeilen basierend auf den Gruppierungsausdrücken und Aggregatwerten MIN in jeder Gruppe zu MAXCOUNTSUMAVG gruppieren. Wenn eine FILTER -Klausel an eine Aggregatfunktion angefügt wird, werden nur die übereinstimmenden Zeilen an diese Funktion übergeben.

  • HAVING

    Die Prädikate, nach denen die von GROUP BY erzeugten Zeilen gefiltert werden. Die HAVING -Klausel wird verwendet, um Zeilen nach dem Gruppieren zu filtern. Wenn Sie ohne angeben, wird ein ohne HAVINGGROUP BYGROUP BY Gruppierungsausdrücke (globales Aggregat) angegeben.

  • QUALIFIZIEREN

    Die Prädikate, die zum Filtern der Ergebnisse von Fensterfunktionen verwendet werden. Um verwenden zu können, muss mindestens eine QUALIFYQUALIFY in der SELECT-Liste oder der QUALIFY-Klausel vorhanden sein.

Wählen Sie für Delta-Tabelle aus.

Zusätzlich zu den Standardoptionen unterstützen Delta-Tabellen die in diesem Abschnitt SELECT beschriebenen Zeitreiseoptionen. Weitere Informationen finden Sie unter Abfragen einer älteren Momentaufnahme einer Tabelle (Zeitreise).

AS OF-Syntax

SELECT * FROM table_identifier TIMESTAMP AS OF timestamp_expression
SELECT * FROM table_identifier VERSION AS OF version
  • timestamp_expression kann eine beliebige der:
    • '2018-10-18T22:15:12.013Z', d. b. eine Zeichenfolge, die in einen Zeitstempel umstrangen werden kann
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', d. b. eine Datumszeichenfolge
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Jeder andere Ausdruck, der ist oder in einen Zeitstempel umformt werden kann
  • version ist ein Long-Wert, der aus der Ausgabe von ermittelt werden DESCRIBE HISTORY table_spec kann.

Weder timestamp_expression noch version können Unterabfragen sein.

Beispiel

SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
SELECT * FROM delta.`/mnt/delta/events` VERSION AS OF 123

@-Syntax

Verwenden Sie die @ Syntax, um den Zeitstempel oder die Version anzugeben. Der Zeitstempel muss das Format yyyyMMddHHmmssSSS haben. Sie können eine Version nach @ angeben, indem Sie der v Version eine vorverwenden. Geben Sie beispielsweise an, um die 123 Version für die Tabelle abfragen zu eventsevents@v123 können.

Beispiel

SELECT * FROM events@20190101000000000
SELECT * FROM events@v123