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

การดึงค่าแรกและค่าสุดท้าย

ฟังก์ชัน analytic ที่คืนค่าแรกหรือค่าสุดท้ายจากรายการที่เรียงลำดับแล้วนั้นมีประโยชน์มากในการเขียนคิวรี ในแบบฝึกหัดนี้ เราจะมาทำความคุ้นเคยกับฟังก์ชันเหล่านี้กัน ไวยากรณ์มีดังนี้:

  • FIRST_VALUE(numeric_expression) OVER ([PARTITION BY column] ORDER BY column ROW_or_RANGE frame)

  • LAST_VALUE(numeric_expression) OVER ([PARTITION BY column] ORDER BY column ROW_or_RANGE frame)

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

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

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

ดูคอร์ส

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

  • ดึงวันเกิดของผู้ลงคะแนนที่อายุมากที่สุดจากแต่ละประเทศ
  • ดึงวันเกิดของผู้ลงคะแนนที่อายุน้อยที่สุดจากแต่ละประเทศ

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

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

SELECT 
	first_name + ' ' + last_name AS name,
	country,
	birthdate,
	-- Retrieve the birthdate of the oldest voter per country
	___(birthdate) 
	OVER (PARTITION BY ___ ORDER BY ___) AS oldest_voter,
	-- Retrieve the birthdate of the youngest voter per country
	___(___) 
		OVER (___ country ORDER BY ___ ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
				) AS youngest_voter
FROM voters
WHERE country IN ('Spain', 'USA');
แก้ไขและรันโค้ด