ฟังก์ชัน LEAD ใน SQL Server เป็นเครื่องมือที่ทรงพลังมากในกลุ่ม Window Functions ช่วยให้เราสามารถ “ดึงข้อมูลจากแถวถัดไป” มาแสดงในแถวปัจจุบันได้โดยไม่ต้องเขียน Self-join ให้วุ่นวายครับ
LEAD คืออะไร ?
LEAD ใช้สำหรับเข้าถึงข้อมูลในแถวที่อยู่ลำดับถัดลงไปตามเงื่อนไขที่เรากำหนด ส่วนใหญ่มักใช้ในการเปรียบเทียบค่าระหว่างบรรทัด เช่น การหาส่วนต่างของยอดขายรายวัน หรือการดูว่าขั้นตอนถัดไปในระบบ Log คืออะไร
SQL
- scalar_expression: Column ที่เราต้องการดึงค่ามา
- offset: จะให้ “กระโดด” ไปข้างหน้ากี่แถว
- default: ถ้าแถวถัดไปไม่มีข้อมูล จะให้แสดงค่าอะไร
- ORDER BY: เพื่อบอก SQL ว่า “ถัดไป” วัดจากลำดับไหน
ตัวอย่างการใช้งานจริง
สมมติเรามีตารางยอดขายรายวัน DailySales ดังนี้
| SaleDate | Amount |
| 2024-01-01 | 1000 |
| 2024-01-02 | 1200 |
| 2024-01-03 | 1100 |
โจทย์: ต้องการดูยอดขายของ “วันพรุ่งนี้” มาเทียบกับ “วันนี้”
SQL
SELECT SaleDate, Amount AS TodaySales, LEAD (Amount, 1, 0) OVER (ORDER BY SaleDate) AS TomorrowSales
FROM DailySales;