Materi
LAG(kolom) mengambil nilai kolom itu dari baris sebelumnya, dan LEAD(kolom) dari baris sesudahnya, menurut urutan yang ditulis di ORDER BY di dalam OVER. Keduanya menjawab pertanyaan yang membandingkan sebuah baris dengan tetangganya: naik atau turunkah suhu hari ini dari kemarin, berapa kenaikan omzet bulan ini dari bulan lalu, atau kapan kunjungan berikutnya seorang pelanggan. Tanpa LAG, pertanyaan semacam itu membutuhkan tabel yang digabungkan dengan dirinya sendiri beserta syarat tanggal yang rumit.
SELECT kota, tanggal, derajat,
derajat - LAG(derajat) OVER (PARTITION BY kota ORDER BY tanggal) AS perubahan
FROM suhu_harian;Baris pertama tidak punya baris sebelumnya, jadi LAG mengembalikan NULL di sana, dan selisih apa pun dengan NULL ikut menjadi NULL. Bentuk lengkapnya LAG(kolom, jarak, pengganti): jarak menyatakan berapa baris ke belakang dengan bawaan 1, dan pengganti dikembalikan bila baris itu tidak ada. LEAD menerima argumen yang sama ke arah depan, sehingga LEAD(tanggal, 1, 'tidak ada') menulis teks itu pada baris terakhir. Bersama PARTITION BY, tetangga dicari di dalam kelompok saja: pada contoh di atas, suhu Bandung tidak pernah dibandingkan dengan suhu Medan.