SELECT

Şunlar için geçerlidir:check marked yes Databricks SQL check marked yes Databricks Runtime

Bir veya daha fazla tablo başvurusundan bir sonuç kümesi oluşturur. SELECT yan tümcesi, ortak tablo ifadelerini (CTE), küme işlemlerini ve diğer çeşitli yan tümceleri de içeren bir sorgunun parçası olabilir.

Sözdizimi

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

Parametreler

  • Ipuç -ları

    İpuçları, Azure Databricks iyileştiricisinin daha iyi planlama kararları almalarına yardımcı olur. Azure Databricks, birleştirme stratejilerinin seçilmesini ve verilerin yeniden bölümlenmesine etki eden ipuçlarını destekler.

  • TÜMÜ

    Tablo başvurularından eşleşen tüm satırları seçin. Varsayılan olarak etkindir.

  • FARKLI

    Sonuçlardaki yinelenenleri kaldırdıktan sonra tablo başvurularından eşleşen tüm satırları seçin.

  • named_expression

    İsteğe bağlı olarak atanan ada sahip bir ifade.

    • Ifa -de

      Bir değer olarak değerlendirilen bir veya daha fazla değer, işleç ve SQL işlevinin birleşimi.

    • column_alias

      İfade sonucunu adlandıran isteğe bağlı bir sütun tanımlayıcısı. Sağlanmadıysa column_alias Databricks SQL bir tane türetir.

  • star_clause

    Yan tümcesindeki tüm başvurulabilen sütunları veya yan tümcedeki FROM belirli bir tablo başvurusunun sütunlarını veya alanlarını adlandırmak için bir FROM kısaltma.

  • table_reference

    için SELECTbir giriş kaynağı. Bu giriş başvurusu, başvurudan önce anahtar sözcüğü kullanılarak STREAM bir akış başvurusuna dönüştürülebilir.

  • YANAL GÖRÜNÜM

    bir veya daha fazla satır içeren bir sanal tablo oluşturan gibi EXPLODEoluşturucu işlevleriyle birlikte kullanılır. LATERAL VIEW satırları her özgün çıkış satırına uygular.

    Databricks SQL'de ve Databricks Runtime 12.2 ile başlayarak bu yan tümcesi kullanım dışıdır. Tablo değerli bir oluşturucu işlevini table_reference olarak çağırmanız gerekir.

  • WHERE

    Sağlanan koşula göre yan tümcesinin FROM sonucunu filtreler.

  • GROUP BY

    Satırları gruplandırmak için kullanılan ifadeler. Bu, satırları gruplandırma ifadelerine ve her gruptaki toplama değerlerine göre gruplandırmak için toplama işlevleriyle (MIN, COUNTMAX, , SUM, AVG) birlikte kullanılır. Bir FILTER yan tümce bir toplama işlevine eklendiğinde, bu işleve yalnızca eşleşen satırlar geçirilir.

  • HAVING

    tarafından üretilen GROUP BY satırların filtrelendiği koşul. HAVING yan tümcesi, gruplandırma gerçekleştirildikten sonra satırları filtrelemek için kullanılır. olmadan GROUP BYbelirtirsenizHAVING, ifadeleri gruplandırmadan (genel toplama) belirtirGROUP BY.

  • HAK

    Pencere işlevlerinin sonuçlarını filtrelemek için kullanılan koşul. kullanmak QUALIFYiçin SELECT listesinde veya QUALIFY yan tümcesinde en az bir pencere işlevinin bulunması gerekir.

Delta tablosunda seç

Delta tabloları, standart SELECT seçeneklere ek olarak bu bölümde açıklanan zaman yolculuğu seçeneklerini de destekler. Ayrıntılar için bkz . Delta Lake tablo geçmişiyle çalışma.

AS OF söz dizimi

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression şu türlerden herhangi biri olabilir:
    • '2018-10-18T22:15:12.013Z', başka bir ifadeyle zaman damgasına atanabilen bir dizedir
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', yani bir tarih dizesi
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Zaman damgasına atanabilen veya atanabilen diğer tüm ifadeler
  • version , çıkışından elde edilebilen uzun bir değerdir DESCRIBE HISTORY table_spec.

Alt timestamp_expression sorgular da version olamaz.

Örnek

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

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

@ söz dizimi

Zaman damgasını @ veya sürümü belirtmek için söz dizimini kullanın. Zaman damgası biçiminde yyyyMMddHHmmssSSS olmalıdır. sürümünden sonra @ bir ön koşula bağlanarak bir v sürüm belirtebilirsiniz. Örneğin, tablosunun eventssürümünü 123 sorgulamak için belirtinevents@v123.

Örnek

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Örnekler

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