Window

LAST_VALUE

DuckDBDuckDB

Mengembalikan nilai terakhir dalam window frame. Kebalikan dari FIRST_VALUE.

Tipe hasil: Sama dengan tipe expressionDiperbarui: 16 Mei 2026

Syntax

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
1SELECT
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
10FROM price_history;

Mendapatkan harga terbaru dengan frame clause yang benar.

Hasil
product_iddatepricelatest_price
12024-01-01100000115000
12024-02-01120000115000
12024-03-01115000115000

Gotcha: Tanpa Frame Clause

SQL
1-- SALAH: akan return current row value
2SELECT
3 date,
4 price,
5 LAST_VALUE(price) OVER (ORDER BY date) as wrong_last
6FROM prices;
7 
8-- BENAR: dengan frame clause
9SELECT
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
16FROM prices;

Demonstrasi pentingnya frame clause untuk LAST_VALUE.

Target Akhir per Karyawan

SQL
1SELECT
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
10FROM 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.