Window
DuckDB
LEAD
Mengakses nilai dari baris berikutnya dalam partisi hasil. Kebalikan dari LAG.
Tipe hasil:
Sama dengan tipe expressionDiperbarui: 6 Jan 2026Syntax
SQL
LEAD(expression [, offset [, default]]) OVER ([PARTITION BY col] ORDER BY col)Parameter
expressionanywajib
Kolom atau ekspresi yang nilainya akan diambil dari baris berikutnya
ORDER BYclausewajib
Menentukan urutan untuk menentukan 'berikutnya'
offsetINTEGERopsional
Jumlah baris ke depan (default: 1)
Default: 1
defaultsame as expressionopsional
Nilai default jika tidak ada baris berikutnya
PARTITION BYclauseopsional
Opsional. Membagi hasil menjadi partisi
Contoh Penggunaan
Melihat Nilai Berikutnya
SQL
1 SELECT 2 date, 3 event_name, 4 LEAD(event_name) OVER (ORDER BY date) as next_event, 5 LEAD(date) OVER (ORDER BY date) as next_event_date 6 FROM events;
Melihat event berikutnya untuk setiap baris.
Hasil
| date | event_name | next_event | next_event_date |
|---|---|---|---|
| 2024-01-01 | Launch | Sale | 2024-01-15 |
| 2024-01-15 | Sale | Update | 2024-02-01 |
| 2024-02-01 | Update | NULL | NULL |
Menghitung Durasi Session
SQL
1 SELECT 2 user_id, 3 event_time, 4 event_type, 5 LEAD(event_time) OVER (PARTITION BY user_id ORDER BY event_time) - event_time as time_to_next 6 FROM user_events;
Menghitung waktu antara event per user.
Gap Analysis
SQL
1 SELECT 2 order_id, 3 order_date, 4 LEAD(order_date) OVER (PARTITION BY customer_id ORDER BY order_date) as next_order_date, 5 DATE_DIFF('day', order_date, 6 LEAD(order_date) OVER (PARTITION BY customer_id ORDER BY order_date)) as days_to_next_order 7 FROM orders;
Menganalisis gap antara order per customer.