Window

LAST_VALUE

PostgreSQLPostgreSQL

Mengembalikan nilai terakhir dalam window frame. PENTING: Tanpa frame clause eksplisit, hanya melihat sampai baris saat ini. Gunakan UNBOUNDED FOLLOWING untuk nilai terakhir sesungguhnya.

Tipe hasil: same as inputDiperbarui: 16 Mei 2026

Syntax

SQL
LAST_VALUE(expression) OVER (
  [PARTITION BY partition_expression]
  ORDER BY sort_expression
  ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
)

Parameter

expressionanywajib

Kolom atau ekspresi yang nilainya diambil

ORDER BYexpressionwajib

Menentukan urutan dalam window

PARTITION BYexpressionopsional

Membagi data menjadi grup terpisah

Contoh Penggunaan

Harga Penutupan (Closing Price)

SQL
1SELECT
2 date,
3 stock_symbol,
4 price,
5 LAST_VALUE(price) OVER (
6 PARTITION BY stock_symbol
7 ORDER BY date
8 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
9 ) AS closing_price
10FROM stock_prices;

Mengambil harga terakhir (penutupan) untuk setiap saham.

Hasil
datestock_symbolpriceclosing_price
2024-01-01BBCA1000010500
2024-01-02BBCA1020010500
2024-01-03BBCA1050010500

Gap dari Target Akhir

SQL
1SELECT
2 month,
3 actual_sales,
4 LAST_VALUE(actual_sales) OVER (
5 ORDER BY month
6 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
7 ) AS final_sales,
8 LAST_VALUE(actual_sales) OVER (...) - actual_sales AS gap_to_final
9FROM monthly_performance;

Menghitung gap antara nilai saat ini dengan nilai akhir.

Gotcha: Tanpa Frame Clause

SQL
1-- SALAH: Akan menghasilkan nilai row saat ini
2SELECT LAST_VALUE(price) OVER (ORDER BY date) AS wrong;
3 
4-- BENAR: Gunakan frame clause
5SELECT LAST_VALUE(price) OVER (
6 ORDER BY date
7 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
8) AS correct;

Tanpa frame clause, LAST_VALUE hanya melihat sampai baris saat ini.

Pertanyaan Umum tentang LAST_VALUE

Apa itu fungsi LAST_VALUE di PostgreSQL?
Mengembalikan nilai terakhir dalam window frame. PENTING: Tanpa frame clause eksplisit, hanya melihat sampai baris saat ini. Gunakan UNBOUNDED FOLLOWING untuk nilai terakhir sesungguhnya. Di PostgreSQL, fungsi LAST_VALUE termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan LAST_VALUE di PostgreSQL?
Gunakan sintaks berikut: LAST_VALUE(expression) OVER ( [PARTITION BY partition_expression] ORDER BY sort_expression ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ). 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 same as input. 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 2 parameter wajib dan 1 parameter opsional. Parameter yang digunakan: expression (any, wajib): Kolom atau ekspresi yang nilainya diambil; PARTITION BY (expression, opsional): Membagi data menjadi grup terpisah; ORDER BY (expression, wajib): Menentukan urutan dalam window.