クエリに問題があります。最後の変更が記録された時間に基づいて結果をランク付けします。ROW_NUMBERとPARTITIONクエリが1とランク付けされたすべての行を返します
SELECT
ROW_NUMBER() OVER (PARTITION BY ph.pricingHistoryId ORDER BY ph.changeRecorded DESC),
ph.*
FROM
PriceHistory ph
ランキングで1を返します。
クエリに問題があります。最後の変更が記録された時間に基づいて結果をランク付けします。ROW_NUMBERとPARTITIONクエリが1とランク付けされたすべての行を返します
SELECT
ROW_NUMBER() OVER (PARTITION BY ph.pricingHistoryId ORDER BY ph.changeRecorded DESC),
ph.*
FROM
PriceHistory ph
ランキングで1を返します。
pricingHistoryId
がプライマリキーの場合、パーティショニングは常に反復プライマリキーではないため、ランクを1として返します。
行番号は各パーティションに適用され、次のパーティション用にリセットされます。番号を付けるグループを「分割する」必要があります。結果セット全体に1つのシーケンスが必要な場合は、「PARTITION BY ph.pricingHistoryId」を完全に削除し、「ORDER BY」部分だけを残しておきます。
@Akhilと同意します。それは、ph.pricingHistoryIdが一意であることを意味します。
ph.pricingHistoryIdは一意ですか?行番号は各パーティションに適用され、次のパーティション用にリセットされます。 – Glenn
はい、ユニークです - テーブルのプライマリキー – Sam
次に、番号を付けるグループに分割する必要があります。セット全体であれば、 "PARTITION BY ph.pricingHistoryId"部分全体を削除してください。 – Glenn