我有一个类似于下面显示的数据库的学生考试数据的数据库。我试图通过将所有科目的Marks
(Subj
)作为一个学期(Sem
)的总和并将其相应地排序来为这些学生分配ranks
。通过取得一个colomn的值的总和MySQL订单表
因此,如果这是原始DB:
Name | S.NO.| Subj | Sem | Marks | Rank
ab | B1 | C1 | 1 | 002 |
ab | B1 | C2 | 1 | 004 |
ab | B1 | C3 | 1 | 005 |
ab | B1 | C4 | 2 | 008 |
xy | C2 | C1 | 1 | 006 |
xy | C2 | C2 | 1 | 004 |
xy | C2 | C3 | 2 | 007 |
xy | C2 | C4 | 2 | 009 |
xy | C2 | C5 | 2 | 003 |
sm | Z1 | C1 | 1 | 006 |
sm | Z1 | C2 | 2 | 004 |
sm | Z1 | C3 | 2 | 008 |
我想将它转换成:
Name | S.NO.| Subj | Sem | Marks | Rank
ab | B1 | C1 | 1 | 002 | 1(coz his total is 11 in sem 1)
ab | B1 | C2 | 1 | 004 | 1
ab | B1 | C3 | 1 | 005 | 1
ab | B1 | C4 | 2 | 008 | 3
xy | C2 | C1 | 1 | 006 | 2
xy | C2 | C2 | 1 | 004 | 2
xy | C2 | C3 | 2 | 007 | 1(coz his total is 19 in Sem 2)
xy | C2 | C4 | 2 | 009 | 1
xy | C2 | C5 | 2 | 003 | 1
sm | Z1 | C1 | 1 | 006 | 3
sm | Z1 | C2 | 2 | 004 | 2
sm | Z1 | C3 | 2 | 008 | 2
该数据库拥有约30万行。
自定义RANK OVER在MySQL中很重要,它不会在大型桌面上扩展......您的桌子变得多大? –
为什么不用另一张桌子,只有一个学生姓名(或数字),一个学期和一些标记? – Ashalynd
这是一个300-500K行的godaddy帐户,它真的很难这样做,因为它会给我一个连接超时错误 – jaisonDavis