SELECT-component (Databricks SQL)

Stelt een resultatenset op uit een of meer tabellen. De component kan deel uitmaken van een query die ook SELECT CTE (Common Table Expressions), setbewerkingen en verschillende andere -component bevat.

Syntaxis

SELECT [ hints ] [ ALL | DISTINCT ] { named_expression | star_clause } [, ...]
  FROM from_item [, ...]
  [ LATERAL VIEW clause ]
  [ PIVOT clause ]
  [ WHERE clause ]
  [ GROUP BY clause ]
  [ HAVING 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 } . ] *

Parameters

  • Hints

    Hints helpen de Databricks-SQL betere planningsbeslissingen te nemen. Databricks SQL ondersteuning voor hints die invloed hebben op de selectie van joinstrategieën en het opnieuw indelen van de gegevens.

  • ALL

    Selecteer alle overeenkomende rijen uit de relatie. Standaard ingeschakeld.

  • VERSCHILLENDE

    Selecteer alle overeenkomende rijen uit de relatie na het verwijderen van dubbele waarden in resultaten.

  • named_expression

    Een expressie met een optionele toegewezen naam.

    • expression

      Een combinatie van een of meer waarden, operators en SQL functies die worden geëvalueerd als een waarde.

    • column_alias

      Een optionele kolom-id die het expressieresultaat een naam geven. Als er column_alias geen wordt opgegeven, leidt Databricks SQL er een af.

  • star_clause

    Een korte hand om alle verwijzende kolommen in de -component een naam te FROM geven. De lijst met kolommen wordt geordend op volgorde van s en from_item de volgorde van kolommen binnen elke from_item kolom.

    • Table_name

      Als aanwezig limieten heeft voor de kolommen die moeten worden benoemd tot de kolommen in de opgegeven verwijzende tabel.

    • view_name

      Als opgegeven beperkt de kolommen moeten worden uitgebreid tot de kolommen in de opgegeven verwijzende weergave.

  • from_item

    Een bron van invoer voor de SELECT . Een van de volgende producten:

  • table_alias

    Hiermee geeft u eventueel een label op voor de from_item . Als de table_alias bevat s hun aantal moet overeenkomen met het aantal kolommen in de column_identifierfrom_item .

  • PIVOT

    Wordt gebruikt voor gegevensperspectief; U kunt de geaggregeerde waarden op basis van een specifieke kolomwaarde op halen.

  • LATERALE WEERGAVE

    Wordt gebruikt in combinatie met generatorfuncties zoals , waarmee een virtuele tabel met EXPLODE een of meer rijen wordt gegenereerd. LATERALE WEERGAVE past de rijen toe op elke oorspronkelijke uitvoerrij.

  • WAAR

    Filtert het resultaat van FROM de -component op basis van de opgegeven predicaten.

  • GROUP BY

    De expressies die worden gebruikt om de rijen te groeperen. Dit wordt gebruikt in combinatie met statistische functies ( , , , , , ) om rijen te groeperen op basis van de MINMAXCOUNTSUMAVG groeperingsexpressie en geaggregeerde waarden in elke groep. Wanneer een FILTER component is gekoppeld aan een statistische functie, worden alleen de overeenkomende rijen doorgegeven aan die functie.

  • HAVING

    De predicaten waarmee de rijen worden GROUP BY gefilterd die door worden geproduceerd. De HAVING -component wordt gebruikt om rijen filteren nadat de groepering is uitgevoerd. Als u HAVING opgeeft zonder GROUP BY , duidt dit op een zonder GROUP BY groeperingsexpressie (globale aggregatie).

Selecteer in de Delta-tabel

Naast de standaardopties ondersteunen SELECT Delta-tabellen de time travel die in deze sectie worden beschreven. Zie Een query uitvoeren op een oudere momentopname van een tabel (time travel) voor meer informatie.

AS OF Syntaxis

SELECT * FROM table_identifier TIMESTAMP AS OF timestamp_expression
SELECT * FROM table_identifier VERSION AS OF version
  • timestamp_expression kan een van de volgende zijn:
    • '2018-10-18T22:15:12.013Z', dat wil zeggen, een tekenreeks die kan worden gecast naar een tijdstempel
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', dat wil zeggen, een datumreeks
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Alle andere expressies die of kunnen worden gecast naar een tijdstempel
  • version is een lange waarde die kan worden verkregen uit de uitvoer van DESCRIBE HISTORY table_spec .

Noch kunnen timestamp_expressionversion subquery's zijn.

Voorbeeld

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

@ Syntaxis

Gebruik de @ syntaxis om de tijdstempel of versie op te geven. De tijdstempel moet de notatie yyyyMMddHHmmssSSS hebben. U kunt een versie na opgeven @ door een aan de versie te vooraf te v gaan. Als u bijvoorbeeld een query wilt uitvoeren op 123 de versie voor de tabel , geeft u eventsevents@v123 op.

Voorbeeld

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