我遇到查询问题,我希望它根据记录最后一次更改的时间对结果进行排名。
SELECT
ROW_NUMBER() OVER (PARTITION BY ph.pricingHistoryId ORDER BY ph.changeRecorded DESC),
ph.*
FROM
PriceHistory ph
它返回所有1的排名。
答案 0 :(得分:4)
如果pricingHistoryId
是主键,则按其分区始终将等级返回为1,因为不能有重复的主键!
答案 1 :(得分:1)
行号应用于每个分区并重置为下一个分区。您需要“分区”您想要编号的组。如果您想在整个结果集中使用一个序列,请完全删除“PARTITION BY ph.pricingHistoryId”并保留“ORDER BY”部分。
答案 2 :(得分:0)
同意@Akhil。这意味着ph.pricingHistoryId是唯一的。