MySQL - 生成的行号不是连续的

MySQL - Generated row numbers are not sequential

我正在尝试为从我的数据库中选择的每一行生成行号,但行号似乎遵循 table 在排列(排序依据)之前的顺序。

实际table https://www.dropbox.com/s/otstzak20yxcgt6/test1.PNG?dl=0

查询后 https://www.dropbox.com/s/i9jaoy04vq6u2zh/test2.PNG?dl=0

代码

SET @row_num = 0; 
SELECT @row_num := @row_num + 1 as Position, Student.Stud_ID, Student.Stud_Name, Student.Stud_Class, SUM(Grade.Percentage) AS Points 
FROM Student, Student_Subject, Grade 
WHERE Student.Stud_ID = Student_Subject.Stud_ID 
AND Student_Subject.Stud_Subj_ID = Grade.Stud_Subj_ID 
AND Student.Stud_Form = '1' 
AND Grade.Quarter = '1' 
GROUP BY Student.Stud_ID 
ORDER BY Points DESC

请帮忙。期待收到yall的回复。谢谢!

尝试内部 select,这样行号将在 ORDER BY 之后生成,如下所示:

SET @row_num = 0; 
SELECT @row_num := @row_num + 1 as Position, s.* 
FROM
(
    SELECT
        Student.Stud_ID, Student.Stud_Name, Student.Stud_Class, SUM(Grade.Percentage) AS Points 
    FROM Student, Student_Subject, Grade 
    WHERE Student.Stud_ID = Student_Subject.Stud_ID 
        AND Student_Subject.Stud_Subj_ID = Grade.Stud_Subj_ID 
        AND Student.Stud_Form = '1' 
        AND Grade.Quarter = '1' 
    GROUP BY Student.Stud_ID 
    ORDER BY Points DESC
) AS s;