0

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
Akina
  • 39,301
  • 5
  • 14
  • 25

0 Answers0