SQL Server 2012的FIRST_VALUE和LAST_VALUE的实际用途是什么(代码名称:Denali)CTP 3

时间:2011-07-19 12:17:24

标签: sql sql-server tsql sql-server-2012

随着Denali的CTP 3发布,我们有更多的分析功能,其中我对两个感兴趣:

a)First_Value
b)Last_Value

我理解FIRST_VALUE根据partition和order by子句返回第一个值,而Last_Value根据partition和order by子句返回最后一个值。

但在实际情况下,它们会有用吗?实时情况示例将帮助我理解这一点。

1 个答案:

答案 0 :(得分:5)

这些函数可以帮助您从结果集中获取其他信息,而无需使用复杂的自联接,派生表等。例如,假设您在表中有20条论坛消息,并且您想知道谁启动了该线程,谁发布了最后的回复。它们按日期/时间排序,因此MIN()& MAX()可以帮助您识别何时第一个&最后的帖子发生了,他们不能告诉你这些作者是谁,除非你出去并以某种方式获得了额外的信息。即使这样也很复杂 - 例如,如果您没有自然或人工键列(您可以加入标识列),您可能会想要加入日期/时间值,这些值不能保证是唯一的...