0

結合を操作するときの密なランク関数の動作を明確にしたいと考えています。ここで以前の私の投稿に対する優れた解決策を得ましたSQL Server recursive cte help want解決策を見ると、密なランクと内部結合を使用して、欠落しているデータ ポイントでブレークを使用してデータを分割します。

だから:私が解決策をどのように読んだかに基づいて、内部結合の場合、密なランクには、右側ではなく左側にあるランキング行が含まれます。これの小さなテストを設定しましたが、その動作を再現できません。たとえば、クエリを実行し、cte で基本的な select ステートメントを使用すると、元のクエリのように再度パーティション分割せずに、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

私の現在の理解に基づいて、結合は tblDailyPricingAndVol の日付の一致を返さないため、上記の密なランク値は最後の 2 つのレコードで 2 から 3 になるだけです。前もって感謝します。

4

1 に答える 1

0

DENSE_RANK結合の結果をランク付けします。2012-01-02結果にTable2は2つの行がないDENSE_RANKため、ランキング値12.

于 2012-03-05T06:38:19.427 に答える