PILIH daftar - Amazon Redshift

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

PILIH daftar

Daftar SELECT menamai kolom, fungsi, dan ekspresi yang ingin Anda kembalikan dari kueri. Daftar ini mewakili output kueri.

Untuk informasi selengkapnya tentang fungsi SQL, lihatReferensi fungsi SQL. Untuk informasi selengkapnya tentang ekspresi, lihatEkspresi bersyarat.

Sintaks

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 adalah tetap, tetapi kumpulan baris tidak. Untuk mengembalikan satu 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 dengan SELECT * (pilih semua baris untuk semua kolom dan pertahankan duplikat).

DISTINCT

Opsi yang menghilangkan baris duplikat dari set hasil, berdasarkan nilai yang cocok dalam satu atau beberapa 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 menampilkan baris duplikat jika kolom kunci primer 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 terbentuk dari satu atau lebih kolom yang ada di tabel yang direferensikan oleh kueri. Ekspresi dapat berisi fungsi SQL. Sebagai contoh:

avg(datediff(day, listtime, saletime))
AS column_alias

Nama sementara untuk kolom yang digunakan dalam set hasil akhir. Kata kunci AS adalah opsional. Sebagai contoh:

avg(datediff(day, listtime, saletime)) as avgwait

Jika Anda tidak menentukan alias untuk ekspresi yang bukan nama kolom sederhana, set 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. Ketika Amazon Redshift mem-parsing jenis referensi ini, itu hanya sebaris alias yang ditentukan sebelumnya. Jika ada kolom dengan nama yang sama yang didefinisikan dalam FROM klausa sebagai ekspresi alias sebelumnya, kolom dalam FROM klausa 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

Contoh berikut mengembalikan 10 baris dari tabel PENJUALAN. Meskipun kueri menggunakan klausa TOP, ia masih mengembalikan sekumpulan 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 PENJUALAN menggunakan klausa TOP, diurutkan oleh 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 PENJUALAN, diurutkan oleh 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 kelompok 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 kumpulan angka 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)