LAST_ fungsi VALUE jendela - Amazon Redshift

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

LAST_ fungsi VALUE jendela

Diberikan kumpulan baris yang diurutkan, VALUE fungsi LAST _ mengembalikan nilai ekspresi sehubungan dengan baris terakhir dalam bingkai.

Untuk informasi tentang memilih baris pertama dalam bingkai, lihatFIRST_ fungsi VALUE jendela.

Sintaks

LAST_VALUE( expression )[ IGNORE NULLS | RESPECT NULLS ] OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )

Argumen

ekspresi

Kolom target atau ekspresi tempat fungsi beroperasi.

IGNORE NULLS

Fungsi mengembalikan nilai terakhir dalam frame yang tidak NULL (atau NULL jika semua nilaiNULL).

RESPECT NULLS

Menunjukkan bahwa Amazon Redshift harus menyertakan nilai nol dalam penentuan baris mana yang akan digunakan. RESPECTNULLSdidukung secara default jika Anda tidak menentukan IGNORENULLS.

OVER

Memperkenalkan klausa jendela untuk fungsi tersebut.

PARTITIONOLEH expr_list

Mendefinisikan jendela untuk fungsi dalam hal satu atau lebih ekspresi.

ORDEROLEH order_list

Mengurutkan baris dalam setiap partisi. Jika tidak ada klausa PARTITION BY yang ditentukan, ORDER BY mengurutkan seluruh tabel. Jika Anda menentukan klausa ORDER BY, Anda juga harus menentukan frame_clause.

Hasilnya tergantung pada urutan data. Hasilnya nondeterministik dalam kasus-kasus berikut:

  • Ketika tidak ada klausa ORDER BY yang ditentukan dan partisi berisi dua nilai yang berbeda untuk ekspresi

  • Ketika ekspresi mengevaluasi nilai yang berbeda yang sesuai dengan nilai yang sama dalam daftar ORDER BY.

frame_clause

Jika klausa ORDER BY digunakan untuk fungsi agregat, klausa bingkai eksplisit diperlukan. Klausa bingkai menyempurnakan kumpulan baris di jendela fungsi, termasuk atau mengecualikan kumpulan baris dalam hasil yang diurutkan. Klausa bingkai terdiri dari ROWS kata kunci dan penentu terkait. Lihat Ringkasan sintaks fungsi jendela.

Jenis pengembalian

Fungsi-fungsi ini mendukung ekspresi yang menggunakan tipe data Amazon Redshift primitif. Tipe pengembalian sama dengan tipe data ekspresi.

Contoh

Contoh berikut menggunakan VENUE tabel dari TICKIT data sampel. Untuk informasi selengkapnya, lihat Database sampel.

Contoh berikut mengembalikan kapasitas tempat duduk untuk setiap tempat di VENUE meja, dengan hasil yang diurutkan berdasarkan kapasitas (tinggi ke rendah). VALUEFungsi LAST _ digunakan untuk memilih nama tempat yang sesuai dengan baris terakhir dalam bingkai: dalam hal ini, baris dengan jumlah kursi paling sedikit. Hasilnya dipartisi berdasarkan status, jadi ketika VENUESTATE nilainya berubah, nilai terakhir yang baru dipilih. Bingkai jendela tidak terbatas sehingga nilai terakhir yang sama dipilih untuk setiap baris di setiap partisi.

Untuk California, Shoreline Amphitheatre dikembalikan untuk setiap baris di partisi karena memiliki jumlah kursi terendah (22000).

select venuestate, venueseats, venuename, last_value(venuename) over(partition by venuestate order by venueseats desc rows between unbounded preceding and unbounded following) from (select * from venue where venueseats >0) order by venuestate; venuestate | venueseats | venuename | last_value -----------+------------+--------------------------------+------------------------------ CA | 70561 | Qualcomm Stadium | Shoreline Amphitheatre CA | 69843 | Monster Park | Shoreline Amphitheatre CA | 63026 | McAfee Coliseum | Shoreline Amphitheatre CA | 56000 | Dodger Stadium | Shoreline Amphitheatre CA | 45050 | Angel Stadium of Anaheim | Shoreline Amphitheatre CA | 42445 | PETCO Park | Shoreline Amphitheatre CA | 41503 | AT&T Park | Shoreline Amphitheatre CA | 22000 | Shoreline Amphitheatre | Shoreline Amphitheatre CO | 76125 | INVESCO Field | Coors Field CO | 50445 | Coors Field | Coors Field DC | 41888 | Nationals Park | Nationals Park FL | 74916 | Dolphin Stadium | Tropicana Field FL | 73800 | Jacksonville Municipal Stadium | Tropicana Field FL | 65647 | Raymond James Stadium | Tropicana Field FL | 36048 | Tropicana Field | Tropicana Field ...