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