c# - 计算用户排名

标签 c# sql sql-server algorithm statistics

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

UserId (UNIQUEIDENTIFIER)
ViewCount (BIGINT)
SubscriberCount (BIGINT)
Rank (INT)
  1. 为数据库中的数百万用户提供 1-10 或 1-5 排名的最佳方式是什么?
  2. 您会推荐什么? 1-10 或 1-5 还是其他?为什么?

编辑:

我希望对 SubscriberCount 给予比 ViewCount 更多的重视

最佳答案

要计算排名,您可以使用 ntile像这样。

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

如果您希望排名值为 1-10 以及 SubscriberCount 的权重更大,您可以像这样修改查询。

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

关于c# - 计算用户排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5695400/

相关文章:

mysql - SQL中如何将每个组的结果与总体跨组指标进行比较

c# - Windows Azure 网站连接外部 SQL 服务器

sql-server - 创建带有主键的 View ?

sql-server - 在 CONTAINSTABLE SQL SERVER FULL TEXT SEARCH 中使用 'AND' 时遇到问题

c# - 从 ProcessThread 到托管线程

c# - 在VSTO Excel中,如何检测单元格中的数据?

sql - 如何以一张表为基础连接Microsoft Access中的4张表?

mysql - 更新具有索引的列值的影响?

c# - 当存在内部异常时,是否有理由保留外部异常?

c# - ViewModel 应该如何关闭表单?