táblahivatkozás

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

A táblahivatkozások köztes eredménytáblák az SQL-ben. Más operátorokból, például függvényekből, illesztésekből vagy allekérdezésekből is származtatható, közvetlenül hivatkozhat egy alaptáblára, vagy beágyazott táblaként is létrehozható.

Syntax

table_reference
  { table_name [ TABLESAMPLE clause ] [ table_alias ] |
    { STREAM table_name [ table_alias ] | STREAM ( table_name ) [ table_alias ] } |
    view_name [ table_alias ] |
    JOIN clause |
    PIVOT clause |
    UNPIVOT clause |
    [ STREAM ] table_valued_function [ table_alias ] |
    [ LATERAL ] table_valued_function [ table_alias ] |
    VALUES clause |
    [ LATERAL ] ( query ) [ TABLESAMPLE clause ] [ table_alias ] }

Paraméterek

  • table_name

    Olyan táblát azonosít, amely tartalmazhat időbeli specifikációt. Részletekért lásd: A Delta Lake táblaelőzményeinek ismertetése.

    Ha a tábla nem található, az Azure Databricks TABLE_OR_VIEW_NOT_FOUND hibát jelez.

    A névfeloldásról további információt az Oszlop, mező, paraméter és változófeloldás című témakörben talál.

  • view_name

    Egy nézetet vagy egy közös táblakifejezést (CTE) azonosít. Ha a nézet nem található, az Azure Databricks TABLE_OR_VIEW_NOT_FOUND hibát okoz.

    A névfeloldásról további információt az Oszlop, mező, paraméter és változófeloldás című témakörben talál.

  • PATAK

    Streamforrásként visszaad egy táblát vagy egy táblaértékelő függvényt. A kulcsszavak használata esetén a táblák nem adhatók meg időbeli specifikációval STREAM . A streamelési források leggyakrabban a streamelési táblák definícióiban használatosak.

  • CSATLAKOZZON

    Két vagy több kapcsolatot egyesít egy illesztés használatával.

  • PIVOT

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 12.2 LTS és újabb.

    Adatperspektíva; az összesített értékeket adott oszlopérték alapján is lekérheti.

    A Databricks Runtime 12.0 PIVOT előtt a záradékot követő FROM Standard kiadás LECT értékre van korlátozva.

  • UNPIVOT

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 12.2 LTS és újabb.

    Adatperspektíva; több oszlopcsoportot is feloszthat sorokra.

  • [OLDALIRÁNYÚ]table_valued_function_invocation

    Meghív egy táblaértékű függvényt. Ha az előző FROM záradékban közzétett table_reference oszlopokra szeretne hivatkozni, meg kell adniaLATERAL.

  • ÉRTÉKEK

    Beágyazott táblát definiál.

  • [OLDALIRÁNYÚ] ( lekérdezés )

    Táblahivatkozás kiszámítása lekérdezéssel. Az előtaggal rendelkező LATERAL lekérdezések hivatkozhatnak az ugyanazon FROM záradékban szereplő előző table_reference oszlopokra. Az ilyen szerkezetet korrelált vagy függő lekérdezésnek nevezzük.

  • TABLESAMPLE

    Igény szerint csökkentheti az eredményhalmaz méretét úgy, hogy csak a sorok töredékét mintavételozza.

  • table_alias

    Opcionálisan megadja a címkét a table_reference. Ha a tartalmazza column_identifieraz table_alias s-t, a számnak meg kell egyeznie a . table_referenceoszlopainak számával.

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