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

การเข้าถึงค่าจากแถวถัดไป

ด้วยฟังก์ชัน LEAD() คุณสามารถเข้าถึงข้อมูลจากแถวถัดไปในคิวรีเดียวกันได้ โดยไม่ต้องใช้ statement GROUP BY วิธีนี้ช่วยให้เปรียบเทียบค่าต่าง ๆ จากรายการที่เรียงลำดับแล้วได้อย่างสะดวก

รูปแบบการใช้งานมีดังนี้: LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)

ในแบบฝึกหัดนี้ จะได้ฝึกเปรียบเทียบค่าในแถวปัจจุบันกับค่าในแถวถัดไป

ให้เลือกข้อมูลของผู้ลงคะแนนจากฝรั่งเศส และจัดเรียงผลลัพธ์ตามจำนวนคะแนนโหวตทั้งหมดจากน้อยไปมาก จุดประสงค์คือเพื่อวิเคราะห์ว่าจำนวนคะแนนของผู้ลงคะแนนแต่ละรายแตกต่างจากจำนวนคะแนนของบุคคลถัดไปในรายการอย่างไร

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

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

ดูคอร์ส

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

  • สร้างคอลัมน์ใหม่ที่แสดงจำนวนคะแนนโหวตของบุคคลถัดไปในรายการ
  • สร้างคอลัมน์ใหม่ที่แสดงผลต่างระหว่าง total_votes ของผู้ลงคะแนนคนปัจจุบันกับคะแนนของบุคคลถัดไป

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

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

SELECT 
	first_name,
	last_name,
	total_votes AS votes,
    -- Select the number of votes of the next voter
	___(___) OVER (___ total_votes) AS votes_next_voter,
    -- Calculate the difference between the number of votes
	LEAD(___) ___ (ORDER BY ___) - total_votes AS votes_diff
FROM voters
WHERE country = 'France'
ORDER BY total_votes;
แก้ไขและรันโค้ด