Расчет рейтинга пользователя - PullRequest
2 голосов
/ 17 апреля 2011

Предположим, у меня есть таблица UserStatistics со следующими столбцами:

UserId (UNIQUEIDENTIFIER)
ViewCount (BIGINT)
SubscriberCount (BIGINT)
Rank (INT)
  1. Как лучше всего присвоить миллионам пользователей в базе данных звание 1-10 или 1-5?
  2. Что бы вы порекомендовали? 1-10 или 1-5 или что-то еще? Почему?

EDIT:

Я бы хотел придать SubscriberCount больше веса, чем ViewCount

Ответы [ 2 ]

4 голосов
/ 17 апреля 2011

Чтобы рассчитать ранг, вы можете использовать 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
2 голосов
/ 17 апреля 2011

Это зависит от того, чего вы хотите достичь с этим рейтингом ...

Если вы просто хотите объединить людей в несколько грубых групп, то 1-5

Если вы хотите применить некоторыетонкие различия, то вы должны пойти с 1-10

Это просто на основе контекста, в котором вы анализируете ранги дальше в вашем приложении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...