У меня есть таблица jackpot
с колонками uid
для ID пользователя и nright
для получения нескольких правильных ответов.Вычисление балла по рангу позиции
У меня есть возможность выбирать и оценивать пользователей по правильным ответам, но что дальше?
SELECT
a1.uid,
a1.nright,
COUNT(a2.nright) AS rank
FROM
jackpot a1,
jackpot a2
WHERE
a1.nright < a2.nright
OR (
a1.nright = a2.nright
AND a1.uid = a2.uid
)
GROUP BY
a1.uid,
a1.nright
ORDER BY
a1.nright DESC,
a1.uid DESC
Мне нужно рассчитать количество баллов для каждого пользователя в зависимости от его положения.
Только пользователи с топ-3 MAX nright
получают баллы.
Общее количество баллов = количество пользователей * 20.
Первая позиция получает 70% от общей суммы, 2 - 20%, 3 - 10%.
В случае равных правильных ответов между пользователями точки распределяются равномерно (50/50, 33/33/33 ...).
Было бы очень полезно, если вы после DML и DDL вашего SQL, а также, если вы делаете [SQL Fiddle] (http://sqlfiddle.com) –