เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเข้าถึงค่าจากแถวก่อนหน้า

การใช้ฟังก์ชัน LAG() ในคิวรีช่วยให้เข้าถึงข้อมูลจากแถวก่อนหน้าแถวปัจจุบันได้

รูปแบบ syntax มีดังนี้: LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)

ในแบบฝึกหัดนี้ จะได้ใช้ฟังก์ชันนี้ในคิวรีเพื่อวิเคราะห์คะแนนของช็อกโกแลตที่ผลิตโดยบริษัทชื่อ "Fruition"

บริษัทนี้ผลิตช็อกโกแลตโดยใช้โกโก้จากหลากหลายภูมิภาคทั่วโลก

เป้าหมายคือตรวจสอบว่ามีความสัมพันธ์ระหว่างเปอร์เซ็นต์โกโก้และคะแนนที่ได้รับหรือไม่ สำหรับช็อกโกแลตที่มาจากแหล่งเดียวกัน โดยจะเปรียบเทียบเปอร์เซ็นต์โกโก้ของแต่ละแท่งกับเปอร์เซ็นต์ของแท่งที่ได้รับคะแนนก่อนหน้า จากนั้นคำนวณความแตกต่างระหว่างค่าทั้งสองและแปลผลลัพธ์

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

ฟังก์ชันสำหรับจัดการข้อมูลใน SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างคอลัมน์ใหม่ที่แสดงเปอร์เซ็นต์โกโก้ของช็อกโกแลตแท่งที่ได้รับคะแนนต่ำกว่า โดยมีแหล่งที่มาของโกโก้จากสถานที่เดียวกัน (ค่า broad_bean_origin เหมือนกัน)
  • สร้างคอลัมน์ใหม่ที่แสดงผลต่างระหว่างเปอร์เซ็นต์โกโก้ของแท่งปัจจุบันกับเปอร์เซ็นต์โกโก้ของแท่งก่อนหน้า

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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;
แก้ไขและรันโค้ด