访问下一行的值
使用 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;