0

クエリに問題があります。最後の変更が記録された時間に基づいて結果をランク付けしたいと考えています。

SELECT
  ROW_NUMBER() OVER (PARTITION BY ph.pricingHistoryId ORDER BY ph.changeRecorded DESC),
  ph.*
FROM
  PriceHistory ph

ランキングはオール1を返します。

4

3 に答える 3

4

が主キーの場合pricingHistoryId、反復する主キーが存在できないため、それによるパーティショニングは常にランクを 1 として返します。

于 2012-02-02T01:00:15.320 に答える
1

行番号は各パーティションに適用され、次のパーティションのためにリセットされます。番号を付けたいグループを「分割」する必要があります。結果セット全体で 1 つのシーケンスが必要な場合は、「PARTITION BY ph.pricingHistoryId」を完全に削除し、「ORDER BY」部分のみを保持します。

于 2012-02-02T01:00:14.853 に答える
0

@Akhilに同意します。これは、ph.pricingHistoryId が一意であることを意味します。

于 2012-02-02T02:55:19.760 に答える