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:
| id | revenue | month |
| 1 | 532 | 5 |
| 2 | 492 | 6 |
| 3 | 393 | 7 |
| 4 | 723 | 8 |
SELECT id, revenue, LAG(revenue, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY idIni akan membuat tabel berikut:
| id | revenue | prev_month_revenue |
| 1 | 532 | |
| 2 | 492 | 532 |
| 3 | 393 | 492 |
| 4 | 723 | 393 |
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| id | revenue | next_month_revenue |
| 1 | 532 | 492 |
| 2 | 492 | 393 |
| 3 | 393 | 723 |
| 4 | 723 |
Tantangan
MudahTabel 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:
idefficiencyprevious_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 NULLCoba sendiri
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Kata Kunci Lainnya
Kata kunci INKata kunci BETWEENKata kunci LIKEKata kunci ASRangkuman: Model Ponsel2Kondisi
Dasar KondisiKata Kunci ANDKata Kunci ORKata Kunci NOTMenggabungkan Beberapa KondisiTanda KurungNilai Boolean8Statistik
Fungsi Agregat Bawaan Bagian 1Fungsi Agregat Bawaan Bagian 2Pengelompokan Bagian 1Pengelompokan Bagian 2Subkueri Bagian 1Subkueri Bagian 2Rangkuman, Toko Total GainRangkuman, Toko SkuterRangkuman, Toko Kopi11Fungsi Jendela bagian 1
Fungsi ROW_NUMBERKriteria ORDER BYKriteria PARTITION BYPARTITION & ORDERFungsi LEAD & LAGRekap: LEAD & LAGRekap: GambarRekap: Kotak3Format Pengembalian Khusus
Nilai nullUrutkan Hasil Bagian 1Urutkan Hasil Bagian 2Ulasan: Perusahaan Keamanan SiberBatasi Jumlah RecordUlasan: Pabrik Kendaraan6Tantangan Pengantar
Ulasan: Pemilihan ParlemenUlasan: Polisi Menangkap Pelaku KejahatanUlasan: Wadah Minuman BarUlasan: Insinyur Membuat Kolom BaruLatihan sendiri: Playground SQL