随着Denali的CTP 3发布,我们有更多的分析功能,其中我对两个感兴趣:
我理解FIRST_VALUE
根据partition和order by子句返回第一个值,而Last_Value
根据partition和order by子句返回最后一个值。
但在实际情况下,它们会有用吗?实时情况示例将帮助我理解这一点。
答案 0 :(得分:5)
这些函数可以帮助您从结果集中获取其他信息,而无需使用复杂的自联接,派生表等。例如,假设您在表中有20条论坛消息,并且您想知道谁启动了该线程,谁发布了最后的回复。它们按日期/时间排序,因此MIN()& MAX()可以帮助您识别何时第一个&最后的帖子发生了,他们不能告诉你这些作者是谁,除非你出去并以某种方式获得了额外的信息。即使这样也很复杂 - 例如,如果您没有自然或人工键列(您可以加入标识列),您可能会想要加入日期/时间值,这些值不能保证是唯一的...