Mengakses nilai dari baris sebelumnya
Dengan menggunakan fungsi LAG() dalam sebuah kueri, Anda dapat mengakses baris-baris sebelum baris saat ini.
Berikut sintaksnya:
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
Dalam latihan ini, Anda akan menggunakan fungsi tersebut dalam kueri Anda. Anda akan menganalisis penilaian (rating) batang cokelat yang diproduksi oleh perusahaan bernama "Fruition".
Perusahaan ini memproduksi cokelat dengan kakao yang berasal dari berbagai wilayah di dunia.
Anda ingin memeriksa apakah ada korelasi antara persentase kakao dan skor yang diterima, untuk batang cokelat yang berasal dari lokasi yang sama. Untuk itu, Anda akan membandingkan persentase kakao setiap batang dengan persentase batang yang menerima penilaian sebelumnya. Lalu, Anda akan menghitung selisih antara nilai-nilai tersebut dan menafsirkan hasilnya.
Latihan ini adalah bagian dari kursus
Fungsi untuk Memanipulasi Data di SQL Server
Petunjuk latihan
- Buat kolom baru yang menampilkan persentase kakao dari batang cokelat yang menerima skor lebih rendah, dengan kakao berasal dari lokasi yang sama (
broad_bean_originsama). - Buat kolom baru berisi selisih antara persentase kakao batang saat ini dan persentase batang sebelumnya.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
SELECT
broad_bean_origin AS bean_origin,
rating,
cocoa_percent,
-- Retrieve the cocoa % of the bar with the previous rating
___(___)
OVER(___ broad_bean_origin ORDER BY ___) AS percent_lower_rating
FROM ratings
WHERE company = 'Fruition'
ORDER BY broad_bean_origin, rating ASC;