2015-01-08 2 views
0

데이터베이스에서 선택한 각 행에 대해 행 번호를 생성하려고합니다. 행 번호가 정렬되기 전에 (순서에 따라) 행 순서가 테이블의 순서를 따르는 것 같습니다.MySQL - 생성 된 행 번호가 순차적이 아닙니다.

실제 테이블 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 

Pls는 도움이 후. yall에서 답장 받기를 고대하고 있습니다. 감사! 행 번호는 주문 후 생성 될 수 있도록

답변

0

같은 의해, 내부 선택을 시도해보십시오

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; 
+0

을 그냥 그 일이 왜에 약간의 배경 경우 : ROW_NUM 값이 그것으로 모든 행에 할당됩니다 데이터베이스에서 가져옵니다. 그 이후에 분류되기 때문에 숫자가 뒤죽박죽으로 늘어나고있는 것입니다. – ashurexm

+0

그래도 그렇게 생각했는데 어떻게 해결할 지 모르겠다. 지금은 이해. 감사! –

관련 문제