【发布时间】:2013-05-08 17:59:39
【问题描述】:
我需要一个 sql 来给出学生在特定考试类型中得分的顺序排列的位置,例如猫! only。下面的sql给出了学生的位置但不区分examtyp。它排名不考虑examtyp。
res_id admNo stream examtyp termId marks grade points year
1 2129 0 CAT1 1 525 C 62 2013
2 4093 0 CAT1 1 569 B+ 69 2013
3 2129 0 CAT2 1 550 B+ 67 2013
4 4093 0 CAT2 1 556 B+ 68 2013
6 2129 0 FINAL 1 559 B+ 68 2013
7 2129 0 AVERAGE 1 545 B 66 2013
7 4093 0 FINAL 1 581 B+ 70 2013
8 4093 0 AVERAGE 1 569 B+ 69 2013
$sql = "SELECT 1 + (SELECT count(*) FROM $table a
WHERE a.total_marks > b.total_marks ) AS rank
FROM $table b WHERE admNo=? AND examCategory=? AND termId=? AND year=?
ORDER BY rank LIMIT 1";
$res = $this->db->query($sql, array($admNo, $examCategory, $term, $year));
【问题讨论】:
-
你没试过吗?如果是,请发布一些代码。
-
欢迎来到 StackOverflow!提供您的表定义、示例数据和所需的输出以及到目前为止您自己的成果,以便我们可以看到您的努力,而不会猜测您真正希望我们帮助您的是什么与。
-
创建一个fiddle,这样你就可以自己玩了。