I'm trying to get rank using this query. The join table works well with proper list. I want to add a column for rank. Is this possible using RANK() function or I've to use variables.
SELECT ID,
user_login,
user_email,
result.score,
RANK() OVER (ORDER BY score DESC) AS rank
FROM ( SELECT u.ID,
u.display_name as user_login,
u.user_email,
answers.score
FROM wp_users u
JOIN ( SELECT SUM( CASE WHEN is_correct = 1
THEN 60-(time_taken*2)
ELSE 0
END ) AS score,
user_id,
DATE_FORMAT(answer_date,'%Y-%m-%d') as dates
FROM wp_answers
WHERE 1=1
AND '2020-02-17' = DATE_FORMAT(answer_date,'%Y-%m-%d')
GROUP BY user_id ) answers ON answers.user_id=u.ID
WHERE 1=1
ORDER BY answers.score DESC) result