存取下一列的值
使用 LEAD() 函式,你可以在同一個查詢中不靠 GROUP BY 就取得後續列的資料。這樣就能輕鬆比較已排序清單中的數值。
語法如下:
LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
在這個練習中,你會熟悉如何把目前這一列的數值與下一列的數值進行比較。
你將選取來自 France 的投票者資訊,並依總票數以遞增排序結果。 目的是分析每位投票者的票數,與名單中下一位的票數相比如何。
本練習屬於課程
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;