假设我有一个表UserStatistics包含以下列:

UserId (UNIQUEIDENTIFIER)
ViewCount (BIGINT)
SubscriberCount (BIGINT)
Rank (INT)

给数据库中数百万用户排名1-10或1-5的最佳方法是什么?
你推荐什么1-10或1-5或其他?为什么?
编辑:
我想把更多的重量放在SubscriberCount上而不是ViewCount

最佳答案

你可以用ntile来计算等级。

select *,
 ntile(5) over(order by ViewCount+SubscriberCount) as CalculatedRank
from UserStatistics

如果希望SubscriberCount上的秩值为1-10且权重更大,则可以这样修改查询。
select *,
 ntile(10) over(order by ViewCount+SubscriberCount*2) as CalculatedRank
from UserStatistics

07-24 18:36