Menu
CoddyTech

Fungsi LEAD & LAG

Termasuk bagian Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 61 dari 72.

Fungsi LEAD dan LAG memungkinkan kita mengakses nilai baris saat ini dengan mundur n langkah atau maju n langkah.

Sebagai contoh, jika kita ingin menghitung rasio pendapatan perusahaan pada baris saat ini dan satu bulan sebelumnya, kita dapat mengambil nilai dari bulan sebelumnya:

idrevenuemonth
15325
24926
33937
47238
SELECT id, revenue, LAG(revenue, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY id

Ini akan membuat tabel berikut:

idrevenueprev_month_revenue
1532 
2492532
3393492
4723393

Dengan cara ini, kita dapat menghitung rasio prev_month_revenue/revenue.

Jika kita menggunakan fungsi LEAD, fungsi tersebut akan mengambil pendapatan bulan berikutnya untuk setiap baris:

SELECT id, revenue, LEAD(revenue, 1) OVER (ORDER BY MONTH) as next_month_revenue
FROM table1 ORDER BY id
idrevenuenext_month_revenue
1532492
2492393
3393723
4723 
challenge icon

Tantangan

Mudah

Tabel dan kolom yang tersedia:

  • air_conditioners: id, efficiency, strength, month

Bandingkan efisiensi setiap pendingin ruangan dengan pendingin ruangan sebelumnya.

Tulis query yang menampilkan efisiensi setiap pendingin ruangan beserta efisiensi pendingin ruangan sebelumnya yang dipasang (berdasarkan id). Hitung juga selisih efisiensi antara pendingin ruangan saat ini dan sebelumnya. Urutkan hasil berdasarkan id dan efficiency secara menaik.

Kolom output yang diharapkan:

  • id
  • efficiency
  • previous_efficiency (menggunakan LAG)
  • efficiency_difference (efisiensi saat ini - efisiensi sebelumnya)

Terakhir, bungkus query dan saring baris pertama, yang nilai previous_efficiency-nya (dan karena itu efficiency_difference-nya) kosong, yaitu NULL:

SELECT * FROM (
    -- Your query here
)
WHERE previous_efficiency IS NOT NULL

Coba sendiri

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground SQL