táblahivatkozás
A következőkre vonatkozik: Databricks SQL 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
-
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.
-
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.-
Két vagy több kapcsolatot egyesít egy illesztés használatával.
-
A következőkre vonatkozik: Databricks SQL 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. -
A következőkre vonatkozik: Databricks SQL 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étetttable_reference
oszlopokra szeretne hivatkozni, meg kell adniaLATERAL
.-
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 ugyanazonFROM
záradékban szereplő előzőtable_reference
oszlopokra. Az ilyen szerkezetet korrelált vagy függő lekérdezésnek nevezzük.-
Igény szerint csökkentheti az eredményhalmaz méretét úgy, hogy csak a sorok töredékét mintavételozza.
-
Opcionálisan megadja a címkét a
table_reference
. Ha a tartalmazzacolumn_identifier
aztable_alias
s-t, a számnak meg kell egyeznie a .table_reference
oszlopainak 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átumsztringcurrent_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őlDESCRIBE HISTORY table_spec
kérhető le: .
Sem nem timestamp_expression
version
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 events
verzió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