Fungsi LEAD & LAG
Pelajaran 6 dari 13 dalam kursus SQL Tingkat Lanjut di Coddy.
Fungsi Lead dan Lag memungkinkan kita mengambil nilai dari baris saat ini dengan melihat n langkah ke belakang atau n langkah ke depan.
Misalnya, jika kita ingin menghitung rasio perusahaan untuk baris saat ini dan satu bulan sebelumnya, kita mengambil nilai dari dua bulan sebelumnya:
| id | revenue | month |
| 1 | 532 | 5 |
| 2 | 492 | 6 |
| 3 | 393 | 7 |
| 4 | 723 | 8 |
SELECT id, revenue, LAG(month, 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 | 723 |
Dengan cara ini, kita dapat menghitung rasio prev_month_revenue/revenue.
Jika kita menggunakan fungsi LEAD, fungsi itu akan mengambil nilai bulan berikutnya dari setiap baris:
| id | revenue | next_month_revenue |
| 1 | 532 | 492 |
| 2 | 492 | 393 |
| 3 | 393 | 723 |
| 4 | 723 |
Tantangan
MudahAC bisa menjadi sangat mahal. Seiring waktu, AC menjadi lebih hemat energi dan lebih kuat, tetapi dampak peningkatan ini tidak terlihat dari hari ke hari. Kita perlu melihat perubahan dalam rentang waktu yang lebih panjang untuk melihat peningkatannya.
Untuk melakukannya, hitung rata-rata efficiency dan strength AC untuk setiap id dan month. Lalu, ambil rasio antara efficiency dan strength untuk bulan saat ini dan dua bulan sebelumnya. Terakhir, hitung rasio antara rasio bulan saat ini dan rasio dua bulan sebelumnya. Tampilkan hasil ketika rasionya lebih besar dari 1.5. Beri nama kolom ini ratio_two_months.
Coba sendiri
Semua pelajaran di SQL Tingkat Lanjut
4Ringkasan
Tantangan akhir #12Fungsi Jendela bagian 1
Fungsi ROW_NUMBERKriteria ORDER BYKriteria PARTITION BYFungsi LEAD & LAGTantangan rangkuman #1Tantangan rangkuman #2Latihan sendiri: Compiler Python online