Window
DuckDB
FIRST_VALUE
Mengembalikan nilai pertama dalam window frame. Sangat berguna untuk mendapatkan nilai awal dalam setiap partisi.
Tipe hasil:
Sama dengan tipe expressionDiperbarui: 6 Jan 2026Syntax
SQL
FIRST_VALUE(expression) OVER ([PARTITION BY col] ORDER BY col [frame_clause])Parameter
expressionanywajib
Kolom atau ekspresi yang akan diambil nilai pertamanya
PARTITION BYclauseopsional
Opsional. Membagi hasil menjadi partisi
ORDER BYclauseopsional
Menentukan urutan dalam window
frame_clauseclauseopsional
Opsional. Mendefinisikan window frame
Contoh Penggunaan
Harga Awal per Produk
SQL
1 SELECT 2 product_id, 3 date, 4 price, 5 FIRST_VALUE(price) OVER ( 6 PARTITION BY product_id 7 ORDER BY date 8 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 9 ) as initial_price 10 FROM price_history;
Mendapatkan harga awal setiap produk.
Hasil
| product_id | date | price | initial_price |
|---|---|---|---|
| 1 | 2024-01-01 | 100000 | 100000 |
| 1 | 2024-02-01 | 120000 | 100000 |
| 1 | 2024-03-01 | 115000 | 100000 |
Perbandingan dengan Nilai Awal
SQL
1 SELECT 2 date, 3 revenue, 4 FIRST_VALUE(revenue) OVER (ORDER BY date) as first_revenue, 5 revenue - FIRST_VALUE(revenue) OVER (ORDER BY date) as growth_from_start 6 FROM monthly_revenue;
Membandingkan revenue saat ini dengan revenue awal.
Employee Pertama per Department
SQL
1 SELECT 2 department, 3 name, 4 hire_date, 5 FIRST_VALUE(name) OVER ( 6 PARTITION BY department 7 ORDER BY hire_date 8 ) as first_hire 9 FROM employees;
Menampilkan karyawan pertama (senior) di setiap department.