Window

FIRST_VALUE

DuckDBDuckDB

Mengembalikan nilai pertama dalam window frame. Sangat berguna untuk mendapatkan nilai awal dalam setiap partisi.

Tipe hasil: Sama dengan tipe expressionDiperbarui: 6 Jan 2026

Syntax

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

Mendapatkan harga awal setiap produk.

Hasil
product_iddatepriceinitial_price
12024-01-01100000100000
12024-02-01120000100000
12024-03-01115000100000

Perbandingan dengan Nilai Awal

SQL
1SELECT
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
6FROM monthly_revenue;

Membandingkan revenue saat ini dengan revenue awal.

Employee Pertama per Department

SQL
1SELECT
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
9FROM employees;

Menampilkan karyawan pertama (senior) di setiap department.