Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi jendela LEAD
Fungsi jendela LEAD mengembalikan nilai untuk baris pada offset tertentu di bawah (setelah) baris saat ini di partisi.
Sintaks
LEAD (value_expr [, offset ]) [ IGNORE NULLS | RESPECT NULLS ] OVER ( [ PARTITION BY window_partition ] ORDER BY window_ordering )
Argumen
- value_expr
-
Kolom target atau ekspresi tempat fungsi beroperasi.
- mengimbangi
-
Parameter opsional yang menentukan jumlah baris di bawah baris saat ini untuk mengembalikan nilai untuk. Offset dapat berupa bilangan bulat konstan atau ekspresi yang mengevaluasi ke bilangan bulat. Jika Anda tidak menentukan offset, Amazon Redshift
1
menggunakan sebagai nilai default. Offset0
menunjukkan baris saat ini. - ABAIKAN NULLS
-
Spesifikasi opsional yang menunjukkan bahwa Amazon Redshift harus melewati nilai nol dalam penentuan baris mana yang akan digunakan. Nilai nol disertakan jika IGNORE NULLS tidak terdaftar.
catatan
Anda dapat menggunakan ekspresi NVL atau COALESCE untuk mengganti nilai null dengan nilai lain. Untuk informasi selengkapnya, lihat Fungsi NVL dan COALESCE.
- RESPECT NULLS
-
Menunjukkan bahwa Amazon Redshift harus menyertakan nilai nol dalam penentuan baris mana yang akan digunakan. RESPECT NULLS didukung secara default jika Anda tidak menentukan IGNORE NULLS.
- DI ATAS
-
Menentukan jendela partisi dan pemesanan. Klausa OVER tidak dapat berisi spesifikasi bingkai jendela.
- PARTISI OLEH window_partition
-
Argumen opsional yang menetapkan rentang catatan untuk setiap grup dalam klausa OVER.
- PESANAN DENGAN window_ordering
-
Mengurutkan baris dalam setiap partisi.
Fungsi jendela LEAD mendukung ekspresi yang menggunakan salah satu tipe data Amazon Redshift. Jenis pengembalian sama dengan tipe value_expr.
Contoh
Contoh berikut memberikan komisi untuk acara-acara di tabel PENJUALAN yang tiketnya dijual pada 1 Januari 2008 dan 2 Januari 2008 dan komisi yang dibayarkan untuk penjualan tiket untuk penjualan berikutnya. Contoh berikut menggunakan database sampel TICKIT. Untuk informasi selengkapnya, lihat Database sampel.
SELECT eventid, commission, saletime, LEAD(commission, 1) over ( ORDER BY saletime ) AS next_comm FROM sales WHERE saletime BETWEEN '2008-01-09 00:00:00' AND '2008-01-10 12:59:59' LIMIT 10;
+---------+------------+---------------------+-----------+ | eventid | commission | saletime | next_comm | +---------+------------+---------------------+-----------+ | 1664 | 13.2 | 2008-01-09 01:00:21 | 69.6 | | 184 | 69.6 | 2008-01-09 01:00:36 | 116.1 | | 6870 | 116.1 | 2008-01-09 01:02:37 | 11.1 | | 3718 | 11.1 | 2008-01-09 01:05:19 | 205.5 | | 6772 | 205.5 | 2008-01-09 01:14:04 | 38.4 | | 3074 | 38.4 | 2008-01-09 01:26:50 | 209.4 | | 5254 | 209.4 | 2008-01-09 01:29:16 | 26.4 | | 3724 | 26.4 | 2008-01-09 01:40:09 | 57.6 | | 5303 | 57.6 | 2008-01-09 01:40:21 | 51.6 | | 3678 | 51.6 | 2008-01-09 01:42:54 | 43.8 | +---------+------------+---------------------+-----------+
Contoh berikut memberikan perbedaan maksimum untuk komisi untuk acara di tabel PENJUALAN dan komisi yang dibayarkan untuk penjualan tiket untuk penjualan berikutnya untuk acara yang sama. Contoh ini menunjukkan cara menggunakan LEAD dengan klausa GROUP BY. Karena fungsi jendela tidak diizinkan dalam klausa agregat, contoh ini menggunakan subquery. Contoh berikut menggunakan database sampel TICKIT. Untuk informasi selengkapnya, lihat Database sampel.
SELECT eventid, eventname, max(next_comm_diff) as max_commission_difference FROM ( SELECT sales.eventid, eventname, commission - LEAD(commission, 1) over (ORDER BY sales.eventid, saletime) AS next_comm_diff FROM sales JOIN event ON sales.eventid = event.eventid ) GROUP BY eventid, eventname ORDER BY eventid LIMIT 10
| eventid | eventname | max_commission_difference | +---------+-----------------------------+---------------------------+ | 1 | Gotterdammerung | 7.95 | | 2 | Boris Godunov | 227.85 | | 3 | Salome | 1350.9 | | 4 | La Cenerentola (Cinderella) | 790.05 | | 5 | Il Trovatore | 214.05 | | 6 | L Elisir d Amore | 510.9 | | 7 | Doctor Atomic | 180.6 | | 9 | The Fly | 147 | | 10 | Rigoletto | 186.6 | +---------+-----------------------------+---------------------------+