SELECT

A következőkre vonatkozik:check marked yes Databricks SQL check marked yes Databricks Runtime

Egy eredményhalmazt egy vagy több táblahivatkozásból állít össze. A SELECT záradék része lehet egy lekérdezésnek, amely magában foglalja a gyakori táblakifejezéseket (CTE), a halmazműveleteket és más záradékokat is.

Syntax

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

Paraméterek

  • Tippeket

    A tippek segítenek az Azure Databricks optimalizálójának jobb tervezési döntések meghozatalában. Az Azure Databricks olyan tippeket támogat, amelyek befolyásolják az összekapcsolási stratégiák kiválasztását és az adatok újraparticionálását.

  • ALL (összes)

    Jelölje ki az összes egyező sort a táblahivatkozásokból. Alapértelmezés szerint engedélyezett.

  • KÜLÖNBÖZŐ

    Jelölje ki az összes egyező sort a táblahivatkozásokból, miután eltávolította az ismétlődéseket az eredményekben.

  • named_expression

    Nem kötelezően hozzárendelt névvel rendelkező kifejezés.

    • Kifejezés

      Egy vagy több érték, operátor és SQL-függvény kombinációja, amely kiértékeli az értéket.

    • column_alias

      A kifejezés eredményének elnevezésére nem kötelező oszlopazonosító. Ha nincs column_alias megadva, a Databricks SQL egy származtat egyet.

  • star_clause

    Rövidítés a záradék összes hivatkozható oszlopának FROM vagy egy adott táblahivatkozás oszlopainak vagy mezőinek a FROM záradékban való elnevezéséhez.

  • table_reference

    A bemeneti forrás a SELECT. Ez a bemeneti hivatkozás streamelési referenciává alakítható a STREAM hivatkozás előtti kulcsszó használatával.

  • OLDALIRÁNYÚ NÉZET

    Olyan generátorfüggvényekkel együtt használatos, mint EXPLODEpéldául egy egy vagy több sort tartalmazó virtuális táblázat létrehozása. LATERAL VIEW az egyes eredeti kimeneti sorokra alkalmazza a sorokat.

    A Databricks SQL-ben és a Databricks Runtime 12.2-től kezdve ez a záradék elavult. Egy táblaértékű generátorfüggvényt kell meghívnia table_reference.

  • AHOL

    A megadott predikátumok alapján szűri a FROM záradék eredményét.

  • CSOPORTOSÍTÁS SZEMPONTJA

    A sorok csoportosításához használt kifejezések. Ez az aggregátumfüggvényekkel (MIN, , MAX, COUNT, SUM) AVGegyütt használatos a sorok csoportosításához az egyes csoportok csoportosítási kifejezései és összesített értékei alapján. Ha egy záradékot FILTER aggregátumfüggvényhez csatol, a függvény csak az egyező sorokat továbbítja a függvénynek.

  • MIUTÁN

    Azok a predikátumok, amelyek alapján az előállított GROUP BY sorok szűrve vannak. A HAVING záradék a sorok szűrésére szolgál a csoportosítás végrehajtása után. Ha anélkül ad megHAVING, az csoportosítás nélküli kifejezéseket (globális összesítést) jelezGROUP BY.GROUP BY

  • JOGOSULT

    Az ablakfüggvények eredményeinek szűrésére használt predikátumok. A használatához QUALIFYlegalább egy ablakfüggvénynek szerepelnie kell a Standard kiadás LECT listában vagy a QUALIFY záradékban.

Kijelölés a Delta táblában

A standard SELECT beállítások mellett a Delta-táblák támogatják az ebben a szakaszban ismertetett időutazási lehetőségeket. További részletekért lásd : A Delta Lake táblaelőzményeinek ismertetése.

AS OF Szintaxis

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression az alábbiak bármelyike lehet:
    • '2018-10-18T22:15:12.013Z', azaz olyan sztring, amely időbélyegre vethető
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', azaz dátumsztring
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Bármely más kifejezés, amely időbélyegbe van öntött vagy adható
  • version egy hosszú érték, amely a következő kimenetből DESCRIBE HISTORY table_speckérhető le: .

Sem nem timestamp_expressionversion lehet alqueries.

Példa

> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'

> SELECT * FROM delta.`/mnt/delta/events` VERSION AS OF 123

@ Szintaxis

A szintaxis használatával @ adja meg az időbélyeget vagy a verziót. Az időbélyegnek formátumban yyyyMMddHHmmssSSS kell lennie. A verziót a @ verzióra való előerősítéssel v adhatja meg. Ha például le szeretné kérdezni a tábla eventsverzióját, adja meg a kívánt events@v123értéket123.

Példa

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Példák

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