我有一個類似於下面顯示的數據庫的學生考試數據的數據庫。我試圖通過將所有科目的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