Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
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) dari mana 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 penggabungan silang (produk Cartesian).
Sintaksis
FROM table_reference [, ...]
dimana 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 join_type super_expression [ ON join_condition ] 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 ] ( super_expression.attribute_name ) AS value_alias [ AT index_alias ] UNNEST ( column_reference ) [AS] table_alias ( unnested_column_name ) UNNEST ( column_reference ) WITH OFFSET [AS] table_alias ( unnested_column_name, [offset_column_name] )
Table_alias opsional dapat digunakan untuk memberikan nama sementara ke tabel dan referensi tabel kompleks dan, jika diinginkan, kolom mereka juga, seperti berikut ini:
[ AS ] alias [ ( column_alias [, ...] ) ]
Parameter
- dengan_subkueri_nama_tabel
-
Tabel yang ditentukan oleh subquery diDENGAN 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 lain, 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. Contoh:
select * from sales s, listing l where s.listid=l.listid - kolumn_alias
-
Nama alternatif sementara untuk kolom dalam tabel atau tampilan.
- subkueri
-
Ekspresi query 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 ketika Anda ingin menggabungkan hasil subquery ke tabel lain dan ketika 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 juga tidak ditentukan.
- ALAMI
-
Mendefinisikan gabungan yang secara otomatis menggunakan semua pasangan kolom dengan nama identik dalam dua tabel sebagai kolom penggabungan. 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 dengan nama identik yang ada di tabel yang akan digabungkan, kueri default ke cross-join.
- tipe gabungan
-
Tentukan salah satu jenis gabungan berikut:
-
[BATIN] BERGABUNG
-
KIRI [LUAR] BERGABUNG
-
KANAN [LUAR] BERGABUNG
-
BERGABUNG PENUH [LUAR]
-
CROSS JOIN
Cross-joins 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 dalam mengembalikan baris yang cocok saja, berdasarkan kondisi gabungan atau daftar kolom penggabungan. 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 yang terdaftar kedua. Baris yang tidak cocok berisi nilai NULL untuk mengisi celah di kolom keluaran.
-
- ON join_condition
-
Jenis spesifikasi gabungan di mana kolom penggabungan dinyatakan sebagai kondisi yang mengikuti kata kunci ON. Contoh:
sales join listing on sales.listid=listing.listid and sales.eventid=listing.eventid - MENGGUNAKAN (join_column [,...])
-
Jenis spesifikasi gabungan di mana kolom penggabungan terdaftar dalam tanda kurung. Jika beberapa kolom penggabungan ditentukan, mereka dibatasi oleh koma. Kata kunci USING harus mendahului daftar. 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 diwakili 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 membuat kueri dengan PIVOT dan UNPIVOT, lihatContoh PIVOT dan UNPIVOT.
- TIDAK BERPUTAR
-
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 input menjadi dua kolom hasil: kolom nama dan kolom nilai. Kolom nama berisi nama kolom dari input, sebagai entri baris. Kolom nilai berisi nilai dari kolom input, seperti hasil agregasi. Misalnya, jumlah item dalam berbagai kategori.
Object unpioting dengan UNPIVOT (SUPER) — Anda dapat melakukan pembongkaran objek, di mana ekspresi adalah ekspresi SUPER yang 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 ada JSON-formatted.
- super_ekspresi
-
Ekspresi SUPER yang valid. Amazon Redshift mengembalikan satu baris untuk setiap nilai dalam atribut yang ditentukan. Untuk informasi selengkapnya tentang tipe data SUPER, lihatJenis SUPER. Untuk informasi selengkapnya tentang nilai SUPER yang tidak bersarang, lihat. Kueri tanpa sarang
- nama atribut
-
Nama atribut dalam ekspresi SUPER.
- Indeks_alias
-
Alias untuk indeks yang menandakan posisi nilai dalam ekspresi SUPER.
- UNNEST
-
Memperluas struktur bersarang, biasanya array SUPER, menjadi kolom yang berisi elemen yang tidak bersarang. Untuk informasi selengkapnya tentang menghapus data SUPER, lihatMengkueri data semi-terstruktur. Sebagai contoh, lihat Contoh UNNEST.
- nama_kolom tidak bersarang
-
Nama kolom yang berisi elemen yang tidak bersarang.
- UNEST... DENGAN OFFSET
-
Menambahkan kolom offset ke output yang tidak bersarang, dengan offset mewakili indeks berbasis nol dari setiap elemen dalam array. Varian ini berguna ketika Anda ingin melihat posisi elemen dalam array. Untuk informasi selengkapnya tentang menghapus data SUPER, lihatMengkueri data semi-terstruktur. Sebagai contoh, lihat Contoh UNNEST.
- offset_nama_kolom
-
Nama kustom untuk kolom offset yang Anda gunakan untuk secara eksplisit menentukan bagaimana kolom indeks akan muncul dalam output. Parameter ini bersifat opsional. Secara default, nama kolom offset adalah
offset_col.
Catatan penggunaan
Kolom penggabungan harus memiliki tipe data yang sebanding.
Gabungan NATURAL atau USING hanya mempertahankan satu dari setiap pasangan kolom penggabungan dalam kumpulan hasil perantara.
Gabungan dengan sintaks ON mempertahankan kedua kolom penggabungan dalam kumpulan hasil perantara.
Lihat juga DENGAN klausa.