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 pada baris saat ini dengan mundur n langkah atau maju n langkah.

Misalnya, jika kita ingin menghitung rasio pendapatan perusahaan pada baris saat ini dan satu bulan sebelumnya, kita bisa 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 itu akan mengambil pendapatan bulan berikutnya dari 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 udara dengan pendingin udara sebelumnya.

Tulis query yang menampilkan efisiensi setiap pendingin udara beserta efisiensi pendingin udara sebelumnya yang dipasang (berdasarkan id). Hitung juga selisih efisiensi antara pendingin udara 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 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