0

我希望在使用连接时能够清楚地了解密集等级函数的行为。我在前面的一篇文章中得到了一个很好的解决方案SQL Server recursive cte help want在查看解决方案时,它涉及使用密集等级和内部连接来分区数据,并在缺失数据点处中断。

所以:根据我对解决方案的阅读方式,在内部连接中,密集排名包括左侧的排名行,而不是右侧的行。我对此进行了一个小测试,但无法重现该行为。例如,当我运行查询并在 cte 上使用基本选择语句时,没有像在原始查询中那样再次对其进行分区,并且 1/5/12 的数据点 A 丢失,我得到:

TradeDate     Symbol Clse   DenseRank RowNumber
2012-01-03    A      36.48  1     1
2012-01-04    A      36.19  2     2
2012-01-06    A      37.40  4     3

根据我目前的理解,上面的密集排名值在最后两条记录上只会从 2 变为 3,因为连接不会返回 tblDailyPricingAndVol 中日期的匹配项。提前致谢。

4

1 回答 1

0

DENSE_RANK将对连接的结果进行排名。由于您2012-01-02Table2结果中没有两行,因此DENSE_RANK将给出排名值12.

于 2012-03-05T06:38:19.427 回答