Aracılığıyla paylaş


SELECT (alt seçim)

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

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

Sözdizimi

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

Parametreler

  • SELECT yan tümcesi

    Alt sorguda ifadelerin yürütülmesi, toplamalar ve yinelenenleri kaldırma işlemleri dahil olmak üzere döndürülecek sütunları toplar.

  • tablo_referansı

    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.

    table_reference bir [ölçüm görünümü]((/sql/language-manual/sql-ref-syntax-ddl-create-view.md) ise, FROM cümlesinde başka bir tabloya başvurulmamalıdır.

  • LATERAL VIEW

    bir veya daha fazla satır içeren bir sanal tablo oluşturan EXPLODEgibi oluş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. Bir tablo değerli oluşturucu işlevini table_referenceolarak çağırmalısınız.

  • 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, MAX, COUNT, 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 HAVINGbelirtirsenizGROUP BY, ifadeleri gruplandırmadan (genel toplama) belirtirGROUP BY.

  • QUALIFY

    Pencere işlevlerinin sonuçlarını filtrelemek için kullanılan önermeler. QUALIFYkullanmak için, listesinde veya SELECT yan tümcesinde en az bir QUALIFY bulunması gerekir.

Delta tablosunda seç

Delta tabloları, standart SELECT seçeneklerine ek olarak bu bölümde açıklanan zaman yolculuğu seçeneklerini 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 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, 123tablosunun sürüm events'ı sorgulamak için events@v123'yi belirtin.

Ö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