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.
PILIH daftar
Daftar SELECT memberi nama kolom, fungsi, dan ekspresi yang ingin kueri dikembalikan. Daftar ini mewakili output kueri.
Untuk informasi selengkapnya tentang fungsi SQL, lihatReferensi fungsi SQL. Untuk informasi selengkapnya tentang ekspresi, lihatEkspresi bersyarat.
Sintaksis
SELECT [ TOP number ] [ ALL | DISTINCT ] * | expression [ AS column_alias ] [, ...]
Parameter
- Nomor TOP
-
TOP mengambil integer positif sebagai argumennya, yang mendefinisikan jumlah baris yang dikembalikan ke klien. Perilaku dengan klausa TOP sama dengan perilaku dengan klausa LIMIT. Jumlah baris yang dikembalikan tetap, tetapi kumpulan baris tidak. Untuk mengembalikan set baris yang konsisten, gunakan TOP atau LIMIT bersama dengan klausa ORDER BY.
- SEMUA
-
Kata kunci redundan yang mendefinisikan perilaku default jika Anda tidak menentukan DISTINCT.
SELECT ALL *berarti sama denganSELECT *(pilih semua baris untuk semua kolom dan pertahankan duplikat). - DISTINCT
-
Opsi yang menghilangkan baris duplikat dari kumpulan hasil, berdasarkan nilai yang cocok dalam satu atau lebih kolom.
catatan
Jika aplikasi Anda mengizinkan kunci asing atau kunci utama yang tidak valid, itu dapat menyebabkan kueri mengembalikan hasil yang salah. Misalnya, kueri SELECT DISTINCT mungkin mengembalikan baris duplikat jika kolom kunci utama tidak berisi semua nilai unik. Untuk informasi selengkapnya, lihat Mendefinisikan batasan tabel.
- * (tanda bintang)
-
Mengembalikan seluruh isi tabel (semua kolom dan semua baris).
- ekspresi
-
Ekspresi yang dibentuk dari satu atau lebih kolom yang ada dalam tabel yang direferensikan oleh query. Sebuah ekspresi dapat berisi fungsi SQL. Contoh:
avg(datediff(day, listtime, saletime)) - AS kolumn_alias
-
Nama sementara untuk kolom yang digunakan dalam kumpulan hasil akhir. Kata kunci AS adalah opsional. Contoh:
avg(datediff(day, listtime, saletime)) as avgwaitJika Anda tidak menentukan alias untuk ekspresi yang bukan nama kolom sederhana, kumpulan hasil akan menerapkan nama default ke kolom tersebut.
catatan
Alias dikenali tepat setelah didefinisikan dalam daftar target. Anda dapat menggunakan alias dalam ekspresi lain yang ditentukan setelahnya dalam daftar target yang sama. Contoh berikut menggambarkan hal ini.
select clicks / impressions as probability, round(100 * probability, 1) as percentage from raw_data;Manfaat referensi alias lateral adalah Anda tidak perlu mengulangi ekspresi alias saat membangun ekspresi yang lebih kompleks dalam daftar target yang sama. Saat Amazon Redshift mengurai jenis referensi ini, itu hanya memasukkan alias yang ditentukan sebelumnya. Jika ada kolom dengan nama yang sama yang didefinisikan dalam
FROMklausa sebagai ekspresi alias sebelumnya, kolom dalamFROMklausa akan diprioritaskan. Misalnya, dalam kueri di atas jika ada kolom bernama 'probabilitas' dalam tabel raw_data, 'probabilitas' dalam ekspresi kedua dalam daftar target mengacu pada kolom itu alih-alih nama alias 'probabilitas'.
Catatan penggunaan
TOP adalah ekstensi SQL; ini memberikan alternatif untuk perilaku LIMIT. Anda tidak dapat menggunakan TOP dan LIMIT dalam kueri yang sama.
Contoh
Contoh berikut mengembalikan 10 baris dari tabel SALES. Meskipun kueri menggunakan klausa TOP, ia masih mengembalikan kumpulan baris yang tidak dapat diprediksi karena tidak ada klausa ORDER BY yang ditentukan,
select top 10 * from sales;
Kueri berikut secara fungsional setara, tetapi menggunakan klausa LIMIT alih-alih klausa TOP:
select * from sales limit 10;
Contoh berikut mengembalikan 10 baris pertama dari tabel SALES menggunakan klausa TOP, diurutkan berdasarkan kolom QTYSOLD dalam urutan menurun.
select top 10 qtysold, sellerid from sales order by qtysold desc, sellerid; qtysold | sellerid --------+---------- 8 | 518 8 | 520 8 | 574 8 | 718 8 | 868 8 | 2663 8 | 3396 8 | 3726 8 | 5250 8 | 6216 (10 rows)
Contoh berikut mengembalikan dua nilai QTYSOLD dan SELLERID pertama dari tabel SALES, diurutkan berdasarkan kolom QTYSOLD:
select top 2 qtysold, sellerid from sales order by qtysold desc, sellerid; qtysold | sellerid --------+---------- 8 | 518 8 | 520 (2 rows)
Contoh berikut menunjukkan daftar grup kategori yang berbeda dari tabel CATEGORY:
select distinct catgroup from category order by 1; catgroup ---------- Concerts Shows Sports (3 rows) --the same query, run without distinct select catgroup from category order by 1; catgroup ---------- Concerts Concerts Concerts Shows Shows Shows Sports Sports Sports Sports Sports (11 rows)
Contoh berikut mengembalikan set nomor minggu yang berbeda untuk Desember 2008. Tanpa klausa DISTINCT, pernyataan akan mengembalikan 31 baris, atau satu untuk setiap hari dalam sebulan.
select distinct week, month, year from date where month='DEC' and year=2008 order by 1, 2, 3; week | month | year -----+-------+------ 49 | DEC | 2008 50 | DEC | 2008 51 | DEC | 2008 52 | DEC | 2008 53 | DEC | 2008 (5 rows)