Klausa FROM - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Klausa FROM

Klausa FROM dalam kueri mencantumkan referensi tabel (tabel, tampilan, dan subkueri) tempat data dipilih. Jika beberapa referensi tabel terdaftar, tabel harus digabungkan, menggunakan sintaks yang sesuai baik dalam klausa FROM atau klausa WHERE. Jika tidak ada kriteria gabungan yang ditentukan, sistem memproses kueri sebagai cross-join (produk Cartesian).

Sintaks

FROM table_reference [, ...]

di mana table_reference adalah salah satu dari berikut ini:

with_subquery_table_name [ table_alias ] table_name [ * ] [ table_alias ] ( subquery ) [ table_alias ] table_reference [ NATURAL ] join_type table_reference [ ON join_condition | USING ( join_column [, ...] ) ] table_reference PIVOT ( aggregate(expr) [ [ AS ] aggregate_alias ] FOR column_name IN ( expression [ AS ] in_alias [, ...] ) ) [ table_alias ] table_reference UNPIVOT [ INCLUDE NULLS | EXCLUDE NULLS ] ( value_column_name FOR name_column_name IN ( column_reference [ [ AS ] in_alias ] [, ...] ) ) [ table_alias ] UNPIVOT expression AS value_alias [ AT attribute_alias ]

Table_alias opsional dapat digunakan untuk memberikan nama sementara ke tabel dan referensi tabel kompleks dan, jika diinginkan, kolomnya juga, seperti berikut ini:

[ AS ] alias [ ( column_alias [, ...] ) ]

Parameter

dengan_subquery_table_name

Sebuah tabel didefinisikan oleh subquery di. DENGAN klausa

table_name

Nama tabel atau tampilan.

alias

Nama alternatif sementara untuk tabel atau tampilan. Alias harus disediakan untuk tabel yang berasal dari subquery. Dalam referensi tabel lainnya, alias bersifat opsional. Kata kunci AS selalu opsional. Alias tabel menyediakan pintasan yang nyaman untuk mengidentifikasi tabel di bagian lain dari kueri, seperti klausa WHERE. Sebagai contoh:

select * from sales s, listing l where s.listid=l.listid
column_alias

Nama alternatif sementara untuk kolom dalam tabel atau tampilan.

subkueri

Ekspresi kueri yang mengevaluasi ke tabel. Tabel hanya ada selama durasi kueri dan biasanya diberi nama atau alias. Namun, alias tidak diperlukan. Anda juga dapat menentukan nama kolom untuk tabel yang berasal dari subquery. Penamaan alias kolom penting saat Anda ingin menggabungkan hasil subkueri ke tabel lain dan saat Anda ingin memilih atau membatasi kolom tersebut di tempat lain dalam kueri.

Subquery mungkin berisi klausa ORDER BY, tetapi klausa ini mungkin tidak berpengaruh jika klausa LIMIT atau OFFSET tidak juga ditentukan.

ALAMI

Mendefinisikan gabungan yang secara otomatis menggunakan semua pasangan kolom bernama identik dalam dua tabel sebagai kolom bergabung. Tidak diperlukan kondisi gabungan eksplisit. Misalnya, jika tabel CATEGORY dan EVENT keduanya memiliki kolom bernama CATID, gabungan alami dari tabel tersebut adalah gabungan di atas kolom CATID mereka.

catatan

Jika gabungan NATURAL ditentukan tetapi tidak ada pasangan kolom bernama identik yang ada di tabel yang akan digabungkan, kueri default ke cross-join.

join_type

Tentukan salah satu dari jenis bergabung berikut:

  • [BATIN] BERGABUNG

  • KIRI [LUAR] BERGABUNG

  • KANAN [LUAR] BERGABUNG

  • PENUH [LUAR] BERGABUNG

  • CROSS JOIN

Cross-join adalah gabungan yang tidak memenuhi syarat; mereka mengembalikan produk Cartesian dari dua tabel.

Gabungan dalam dan luar adalah gabungan yang memenuhi syarat. Mereka memenuhi syarat baik secara implisit (dalam gabungan alami); dengan sintaks ON atau USING dalam klausa FROM; atau dengan kondisi klausa WHERE.

Gabungan bagian dalam mengembalikan baris yang cocok saja, berdasarkan kondisi gabungan atau daftar kolom yang bergabung. Gabungan luar mengembalikan semua baris yang akan dikembalikan oleh gabungan dalam yang setara ditambah baris yang tidak cocok dari tabel “kiri”, tabel “kanan”, atau kedua tabel. Tabel kiri adalah tabel yang terdaftar pertama, dan tabel kanan adalah tabel kedua yang terdaftar. Baris yang tidak cocok berisi nilai NULL untuk mengisi celah di kolom output.

PADA join_condition

Jenis spesifikasi gabungan di mana kolom bergabung dinyatakan sebagai kondisi yang mengikuti kata kunci ON. Sebagai contoh:

sales join listing on sales.listid=listing.listid and sales.eventid=listing.eventid
MENGGUNAKAN (join_column [,...])

Jenis spesifikasi gabungan di mana kolom bergabung tercantum dalam tanda kurung. Jika beberapa kolom bergabung ditentukan, mereka dibatasi oleh koma. Kata kunci USING harus mendahului daftar. Sebagai contoh:

sales join listing using (listid,eventid)
POROS

Memutar output dari baris ke kolom, untuk tujuan mewakili data tabular dalam format yang mudah dibaca. Output direpresentasikan secara horizontal di beberapa kolom. PIVOT mirip dengan kueri GROUP BY dengan agregasi, menggunakan ekspresi agregat untuk menentukan format output. Namun, berbeda dengan GROUP BY, hasilnya dikembalikan dalam kolom, bukan baris.

Untuk contoh yang menunjukkan cara melakukan kueri dengan PIVOT dan UNPIVOT, lihat. Contoh PIVOT dan UNPIVOT

UNPIVOT

Memutar kolom menjadi baris dengan UNPIVOT - Operator mengubah kolom hasil, dari tabel input atau hasil kueri, menjadi baris, untuk membuat output lebih mudah dibaca. UNPIVOT menggabungkan data kolom masukannya menjadi dua kolom hasil: kolom nama dan kolom nilai. Kolom nama berisi nama kolom dari input, sebagai entri baris. Kolom nilai berisi nilai-nilai dari kolom masukan, seperti hasil agregasi. Misalnya, jumlah item dalam berbagai kategori.

Object unpivoting with UNPIVOT (SUPER) - Anda dapat melakukan unpivoting objek, di mana ekspresi adalah ekspresi SUPER mengacu pada item klausa FROM lainnya. Untuk informasi selengkapnya, lihat Objek tidak berputar. Ini juga memiliki contoh yang menunjukkan cara menanyakan data semi-terstruktur, seperti data yang diformat JSON.

Catatan penggunaan

Kolom yang bergabung harus memiliki tipe data yang sebanding.

Gabungan ALAMI atau MENGGUNAKAN hanya mempertahankan satu dari setiap pasangan kolom penggabungan dalam kumpulan hasil perantara.

Gabungan dengan sintaks ON mempertahankan kedua kolom yang bergabung dalam kumpulan hasil perantara.

Lihat juga DENGAN klausa.