标识秩我有一个MySQL表所示:取得名次枢轴查询并获取查询
样本数据
ID STUDENT_ID Branch_id Class_id Exam_id Subject_id Numbers Date 1 653 5 1 1 8 60 2012-01-01 2 653 5 1 1 9 40 2012-01-01 3 653 5 1 1 10 80 2012-01-01 4 653 5 1 1 11 50 2012-01-01 5 653 5 1 1 12 65 2012-01-01 6 653 5 1 1 13 33 2012-01-01 7 653 5 1 1 15 86 2012-01-01 8 222 5 1 1 8 100 2012-01-01 9 222 5 1 1 9 80 2012-01-01 10 222 5 1 1 10 92 2012-01-01 11 222 5 1 1 11 50 2012-01-01 12 222 5 1 1 12 65 2012-01-01 13 222 5 1 1 13 33 2012-01-01 7 222 5 1 1 15 86 2012-01-01
我需要得到学生的排名在课堂上即使有二个学生是平等的在标记。例如,如果两名学生在600分中得到600分,则表示两人都处于第一位。
我搜索了很多网站,我发现this post这是我需要的,但在这篇文章中,正确的列已经是标记的总和,但在我的表中我需要总和(数字),然后获得学生的排名取决于总分。
这一切,当我提取单身学生的结果。
相同的数据,当我获取所有类的结果时,有两件事情需要。第一排柱枢查询所以我用行科拉姆查询像Excel格式显示结果:
SELECT m.*
FROM (
select student_id, branch_id, class_id, numbers, exam_id, date
, sum(numbers*(1-abs(sign(subject_id-1)))) as subs1
, sum(numbers*(1-abs(sign(subject_id-2)))) as subs2
, sum(numbers*(1-abs(sign(subject_id-3)))) as subs3
, sum(numbers*(1-abs(sign(subject_id-4)))) as subs4
, sum(numbers*(1-abs(sign(subject_id-5)))) as subs5
, sum(numbers*(1-abs(sign(subject_id-6)))) as subs6
from results
GROUP BY student_id, branch_id, class_id, exam_id
) m
where branch_id = '6'
and class_id = '1'
and exam_id = '1'
and YEAR(date) = '2013'
需要的结果在类的查询,如:
ID Name Math English Science Total Percent Position Rank
而且我得到了导致此查询精。但排名问题如何获得同一查询中的学生排名?
任何人都可以帮忙吗?
请张贴一些样本数据和所需的结果集。 – Quassnoi
我改变了我的问题顺序,因为MvG先生说你的问题没有解决。 –