Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como melhorar este código php mysql?


Distinct é mais lento que Group By . Você pode ir assim sem usar Group By e Distinct juntos e isso pode ser o que você deseja alcançar.
SELECT regd, Roll_no, Name_of_Student, Name_of_exam,
       TOTALSCORE, Rank 
FROM 
(
  SELECT t.*, IF(@p = TOTALSCORE, @n, @n := @n + 1) AS Rank, @p := TOTALSCORE 
    FROM
  (
    SELECT regd, Roll_no, Name_of_Student, Name_of_exam, 
            SUM(Mark_score) TOTALSCORE
    FROM cixexam, (SELECT @n := 0, @p := 0) n 
     WHERE (Name_of_exam='First Terminal Exam' OR Name_of_exam='First Term Test')
     GROUP BY regd 
     ORDER BY TOTALSCORE DESC
  ) t
) r