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

行号应用于每个分区并为下一个分区重置。您需要对要编号的组进行“分区”。如果您想要对整个结果集使用一个序列,请完全删除“PARTITION BY ph.pricingHistoryId”并只保留“ORDER BY”部分。

于 2012-02-02T01:00:14.853 回答
0

同意@Akhil。这意味着 ph.pricingHistoryId 是唯一的。

于 2012-02-02T02:55:19.760 回答