Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime
Hiermee wordt een resultatenset samengesteld uit een of meer tabelverwijzingen.
De SELECT component kan deel uitmaken van een query die ook algemene tabelexpressies (CTE), setbewerkingen en verschillende andere componenten bevat.
Syntaxis
SELECT 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 } [, ...] )
Parameterwaarden
-
Verzamelt de kolommen die moeten worden geretourneerd vanuit de subquery, inclusief de uitvoering van expressies, aggregaties en ontdubbeling.
-
Een bron van invoer voor de
SELECT. Deze invoerreferentie kan worden omgezet in een streaming-verwijzing met behulp van hetSTREAMtrefwoord vóór de verwijzing.Als het
table_referenceeen metrische weergave is, mag er geen andere tabelreferentie in deFROMcomponent staan. -
Wordt gebruikt in combinatie met generatorfuncties zoals
EXPLODE, waarmee een virtuele tabel met een of meer rijen wordt gegenereerd.LATERAL VIEWpast de rijen toe op elke oorspronkelijke uitvoerrij.In Databricks SQL en vanaf Databricks Runtime 12.2 wordt deze component afgeschaft. U moet een generatorfunctie met tabelwaarden aanroepen als een table_reference.
-
Hiermee filtert u het resultaat van de
FROMcomponent op basis van de opgegeven predicaten. -
De expressies die worden gebruikt om de rijen te groeperen. Dit wordt gebruikt in combinatie met statistische functies (
MIN,MAX,COUNT,SUM, )AVGom rijen te groeperen op basis van de groeperingsexpressies en statistische waarden in elke groep. Wanneer eenFILTERcomponent is gekoppeld aan een statistische functie, worden alleen de overeenkomende rijen doorgegeven aan die functie. -
De predicaten waarop de rijen die door worden geproduceerd
GROUP BY, worden gefilterd. DeHAVINGcomponent wordt gebruikt om rijen te filteren nadat de groepering is uitgevoerd. Als u zonder opgeeftHAVING, wordt eenGROUP BYexpressie zonder groepering (globale statistische functie)GROUP BYaangegeven. -
De predicaten die worden gebruikt om de resultaten van vensterfuncties te filteren. Als u
QUALIFYwilt gebruiken, moet ten minste één vensterfunctie aanwezig zijn in de SELECT lijst of de QUALIFY clausule.
Selecteren in Delta-tabel
Naast de standaardopties SELECT ondersteunen Delta-tabellen de opties voor tijdreizen die in deze sectie worden beschreven. Zie Werken met Delta Lake-tabelgeschiedenis voor meer informatie.
AS OF syntaxis
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
-
timestamp_expressionkan een van de volgende zijn:-
'2018-10-18T22:15:12.013Z', dat wil gezegd, een tekenreeks die kan worden gecast naar een tijdstempel cast('2018-10-18 13:36:32 CEST' as timestamp)-
'2018-10-18', dat wil gezegd, een datumtekenreeks current_timestamp() - interval 12 hoursdate_sub(current_date(), 1)- Elke andere expressie die wel of niet kan worden omgezet in een tijdstempel
-
-
versionis een lange waarde die kan worden verkregen uit de uitvoer vanDESCRIBE HISTORY table_spec.
timestamp_expression Geen van beide version subquery's.
Opmerking
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM events VERSION AS OF 123
@ syntaxis
Gebruik de @ syntaxis om de tijdstempel of versie op te geven. De tijdstempel moet een yyyyMMddHHmmssSSS indeling hebben. U kunt een versie opgeven nadat @ u een v versie wilt toevoegen aan de versie. Als u bijvoorbeeld een query wilt uitvoeren op de versie 123 van de tabel events, geeft u events@v123op.
Opmerking
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Voorbeelden
-- 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
Verwante artikelen:
- CLUSTER BY clausule
- Algemene tabelexpressie (CTE)
- DISTRIBUTE BY clausule
- GROUP BY clausule
- HAVING clausule
- QUALIFY clausule
- Hints
- VALUES clausule
- JOIN
- LATERAL VIEW clausule
- LIMIT clausule
- OFFSET clausule
- ORDER BY clausule
- PIVOT clausule
- Vraag
- SELECT clausule
- Operators instellen
- SORT BY clausule
- Stercomponent
- TABLESAMPLE clausule
- Tabelwaarde, functie (TVF)
- tabelreferentie
- UNPIVOT clausule
- WHERE clausule
- WINDOW clausule
- Vensterfuncties