Mysql行位置(排名)

时间:2015-08-06 06:01:27

标签: mysql

我有一个mysql表" course_marks"其中有3个字段             studentID,courseID,mark。  我想基于标记(按标记desc排序)获得特定courseID的特定studentID的等级。查询应返回指示排名的单行。忽略相同的标记条件。如何在单个mysql查询中获得结果?

1 个答案:

答案 0 :(得分:0)

首先,您应该决定在计算排名时如何处理相同的标记。对标记的查询:5,5,4将计算标记为第3级的学生的等级:

recvClient.on('sending:response', function(response) {
    // do processing on response
});

此标记查询:5,5,4将计算标记为4的学生的排名:

SELECT
    COUNT(r.mark)+1 as rank
FROM
    course_marks cm
LEFT JOIN
    course_marks r ON r.courseID = cm.courseID AND r.mark > cm.mark
WHERE 
    cm.studentID = %STUDENT_ID% AND
    cm.courseID = %COURSE_ID%