Bagikan melalui


referensi tabel

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Referensi tabel adalah tabel hasil menengah dalam SQL. Ini dapat diturunkan dari operator lain, seperti fungsi, gabungan atau subkueri, mereferensikan tabel dasar secara langsung, atau dibangun sebagai tabel sebaris.

Sintaks

table_reference
  { table_name [ TABLESAMPLE clause ] [ table_alias ] |
    { STREAM table_name [ table_alias ] | STREAM ( table_name ) [ table_alias ] } |
    view_name [ table_alias ] |
    table_reference JOIN clause |
    table_reference PIVOT clause |
    table_reference UNPIVOT clause |
    [ STREAM ] table_valued_function [ table_alias ] |
    [ LATERAL ] table_valued_function [ table_alias ] |
    VALUES clause |
    [ LATERAL ] ( query ) [ TABLESAMPLE clause ] [ table_alias ] }

Parameter

  • table_name

    Mengidentifikasi tabel yang mungkin berisi spesifikasi temporal . Lihat Bekerja dengan riwayat tabel Delta Lake untuk detailnya.

    Jika tabel tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan TABLE_OR_VIEW_NOT_FOUND.

    Lihat Kolom, bidang, parameter, dan resolusi variabel untuk informasi selengkapnya tentang resolusi nama.

    Berlaku untuk: ** dicentang ya Databricks Runtime 16.0 dan yang lebih tinggi

    table_name dapat mencakup spesifikasi opsi.

  • view_name

    Mengidentifikasi tampilan atau ekspresi tabel umum (CTE). Jika tampilan tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan TABLE_OR_VIEW_NOT_FOUND .

    Lihat Kolom, bidang, parameter, dan resolusi variabel untuk informasi selengkapnya tentang resolusi nama.

  • KALI

    Mengembalikan tabel atau fungsi dengan nilai tabel sebagai sumber streaming. Tabel tidak dapat disediakan dengan spesifikasi temporal saat digunakan dengan kata kunci STREAM. Sumber streaming paling umum digunakan dalam definisi tabel streaming .

  • JOIN

    Menggabungkan dua atau lebih relasi menggunakan join.

  • PIVOT

    Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 12.2 LTS ke atas.

    Digunakan untuk perspektif data; Anda bisa mendapatkan nilai agregat berdasarkan nilai kolom tertentu.

    Sebelum Databricks Runtime 12.0, PIVOT dibatasi hingga SELECT sesuai dengan klausa FROM.

  • UNPIVOT

    Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 12.2 LTS ke atas.

    Digunakan untuk perspektif data; Anda dapat membagi beberapa grup kolom menjadi baris.

  • [LATERAL]table_valued_function_invocation

    Memanggil fungsi bernilai tabel. Untuk merujuk ke kolom yang diekspos oleh table_reference sebelumnya dalam klausa FROM yang sama, Anda harus menentukan LATERAL.

  • VALUES

    Menentukan tabel sebaris.

  • [LATERAL] ( kueri )

    Menghitung referensi tabel menggunakan kueri. Kueri yang diawali oleh LATERAL dapat mereferensikan kolom yang diekspos oleh table_reference sebelumnya dalam klausa FROM yang sama. Konstruksi semacam itu disebut kueri yang berkorelasi atau dependen.

  • TABLESAMPLE

    Secara opsional kurangi ukuran hasil yang ditetapkan hanya dengan mengambil sampel sebagian kecil baris.

  • table_alias

    Secara opsional menetapkan label untuk table_reference. Jika table_alias menyertakan column_identifierjumlahnya harus cocok dengan jumlah kolom di table_reference.

Pilih pada tabel Delta

Selain opsi SELECT standar, tabel Delta mendukung opsi perjalanan waktu yang dijelaskan di bagian ini. Untuk detailnya, lihat Bekerja dengan riwayat tabel Delta Lake.

AS OF sintaks

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression dapat berupa salah satu dari:
    • '2018-10-18T22:15:12.013Z', yaitu, string yang dapat ditransmisikan ke stempel waktu
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', yaitu, string tanggal
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Ekspresi lain yang sedang atau dapat ditransmisikan ke stempel waktu
  • version adalah nilai panjang yang dapat diperoleh dari output DESCRIBE HISTORY table_spec.

Baik timestamp_expression maupun version tidak boleh berupa subkueri.

Contoh

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

> SELECT * FROM events VERSION AS OF 123

@ sintaks

Gunakan @ sintaks untuk menentukan stempel waktu atau versi. Stempel waktu harus dalam format yyyyMMddHHmmssSSS. Anda dapat menentukan versi setelah @ dengan menambahkan v ke versi tersebut. Misalnya, untuk mengkueri versi 123 untuk tabel events, tentukan events@v123.

Contoh

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Contoh


-- Return a data set from a storage location using a credential.
> SELECT * FROM `csv`.`spreadsheets/data.csv` WITH(CREDENTIAL some_credential);

-- Select from a jdbc data source while controlling the fetch size.
> SELECT * FROM jdbcTable WITH(fetchSize = 0);

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