2

在 Denali 的 CTP 3 版本中,我们有更多的分析功能,我对其中两个感兴趣:

a) First_Value
b) Last_Value

我知道FIRST_VALUE根据分区和 order by 子句返回第一个值,而根据 partition 和 order by 子句Last_Value返回最后一个值。

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

4

1 回答 1

5

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

于 2011-07-19T12:32:50.757 回答