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