获取首值和末值
从有序列表中返回首值或末值的分析函数,在查询中非常实用。 在本练习中,您将熟悉它们的用法。 语法如下:
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)
您将编写一条查询,检索来自 Spain 和 USA 的所有选民。然后,在查询中添加命令,分别检索每个国家中最年轻和最年长选民的出生日期。您希望在每一行都能看到这些值,以便与该行选民的出生日期进行比较。
本练习是课程的一部分
在 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');