Window
DuckDB
LAST_VALUE
Mengembalikan nilai terakhir dalam window frame. Kebalikan dari FIRST_VALUE.
Tipe hasil:
Sama dengan tipe expressionDiperbarui: 16 Mei 2026Syntax
SQL
LAST_VALUE(expression) OVER ([PARTITION BY col] ORDER BY col [frame_clause])Parameter
expressionanywajib
Kolom atau ekspresi yang akan diambil nilai terakhirnya
PARTITION BYclauseopsional
Opsional. Membagi hasil menjadi partisi
ORDER BYclauseopsional
Menentukan urutan dalam window
frame_clauseclauseopsional
Opsional. Mendefinisikan window frame
Contoh Penggunaan
Harga Terbaru per Produk (BENAR)
SQL
1 SELECT 2 product_id, 3 date, 4 price, 5 LAST_VALUE(price) OVER ( 6 PARTITION BY product_id 7 ORDER BY date 8 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 9 ) as latest_price 10 FROM price_history;
Mendapatkan harga terbaru dengan frame clause yang benar.
Hasil
| product_id | date | price | latest_price |
|---|---|---|---|
| 1 | 2024-01-01 | 100000 | 115000 |
| 1 | 2024-02-01 | 120000 | 115000 |
| 1 | 2024-03-01 | 115000 | 115000 |
Gotcha: Tanpa Frame Clause
SQL
1 -- SALAH: akan return current row value 2 SELECT 3 date, 4 price, 5 LAST_VALUE(price) OVER (ORDER BY date) as wrong_last 6 FROM prices; 7 8 -- BENAR: dengan frame clause 9 SELECT 10 date, 11 price, 12 LAST_VALUE(price) OVER ( 13 ORDER BY date 14 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 15 ) as correct_last 16 FROM prices;
Demonstrasi pentingnya frame clause untuk LAST_VALUE.
Target Akhir per Karyawan
SQL
1 SELECT 2 employee_id, 3 review_date, 4 target, 5 LAST_VALUE(target) OVER ( 6 PARTITION BY employee_id 7 ORDER BY review_date 8 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 9 ) as final_target 10 FROM performance_reviews;
Menampilkan target terbaru setiap karyawan.
Pertanyaan Umum tentang LAST_VALUE
Apa itu fungsi LAST_VALUE di DuckDB?
Mengembalikan nilai terakhir dalam window frame. Kebalikan dari FIRST_VALUE. Di DuckDB, fungsi LAST_VALUE termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan LAST_VALUE di DuckDB?
Gunakan sintaks berikut: LAST_VALUE(expression) OVER ([PARTITION BY col] ORDER BY col [frame_clause]). Pastikan argumen yang dimasukkan sudah sesuai dengan tipe data yang diharapkan.
Apa nilai yang dikembalikan oleh fungsi LAST_VALUE?
Fungsi LAST_VALUE mengembalikan nilai bertipe Sama dengan tipe expression. Pastikan tipe data hasil sudah sesuai dengan kebutuhan query atau formula kamu. Jika input mengandung nilai NULL, perilaku fungsi dapat berbeda — selalu periksa dokumentasi untuk memastikan hasilnya sesuai ekspektasi.
Apa saja parameter fungsi LAST_VALUE?
Fungsi ini memiliki 1 parameter wajib dan 3 parameter opsional. Parameter yang digunakan: expression (any, wajib): Kolom atau ekspresi yang akan diambil nilai terakhirnya; PARTITION BY (clause, opsional): Opsional. Membagi hasil menjadi partisi; ORDER BY (clause, opsional): Menentukan urutan dalam window; frame_clause (clause, opsional): Opsional. Mendefinisikan window frame.