Mengembalikan nilai terakhir dalam window frame. PENTING: Tanpa frame clause eksplisit, hanya melihat sampai baris saat ini. Gunakan UNBOUNDED FOLLOWING untuk nilai terakhir sesungguhnya.
same as inputDiperbarui: 12 Jul 2026LAST_VALUE(expression) OVER (
[PARTITION BY partition_expression]
ORDER BY sort_expression
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
)Kolom atau ekspresi yang nilainya diambil
Menentukan urutan dalam window
Membagi data menjadi grup terpisah
1 SELECT 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 10 FROM stock_prices;
Mengambil harga terakhir (penutupan) untuk setiap saham.
| date | stock_symbol | price | closing_price |
|---|---|---|---|
| 2024-01-01 | BBCA | 10000 | 10500 |
| 2024-01-02 | BBCA | 10200 | 10500 |
| 2024-01-03 | BBCA | 10500 | 10500 |
1 SELECT 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 9 FROM monthly_performance;
Menghitung gap antara nilai saat ini dengan nilai akhir.
1 -- SALAH: Akan menghasilkan nilai row saat ini 2 SELECT LAST_VALUE(price) OVER (ORDER BY date) AS wrong; 3 4 -- BENAR: Gunakan frame clause 5 SELECT 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.
Sudah paham LAST_VALUE? Latih langsung di browser
Latihan interaktif, langsung di browser.
FIRST_VALUE