假设我在 table_1 中有 int price 列,并且我再次在 table_1 中有 int priceRank 列。现在可以通过单个查询按价格降序排序并通过 row_number 为其分配排名。因此,最大的价格将获得排名 1,第二大的价格将获得排名 2,然后继续。priceRank 列将在此处通过返回的行顺序进行更新。我怎样才能做到这一点 ?那可能吗 ?谢谢你。
我正在使用 SQL Server 2008 R2。
假设我在 table_1 中有 int price 列,并且我再次在 table_1 中有 int priceRank 列。现在可以通过单个查询按价格降序排序并通过 row_number 为其分配排名。因此,最大的价格将获得排名 1,第二大的价格将获得排名 2,然后继续。priceRank 列将在此处通过返回的行顺序进行更新。我怎样才能做到这一点 ?那可能吗 ?谢谢你。
我正在使用 SQL Server 2008 R2。
;with C as
(
select priceRank,
row_number() over(order by price desc) as rn
from Table_1
)
update C
set priceRank = rn
https://data.stackexchange.com/stackoverflow/q/119397/
如果rank
您希望平局具有相同的排名,请使用dense_rank
,如果您不希望排名值有任何差距,请使用。