2017-06-21 16 views
0

這裏是我們的餐桌如何獲得SQL不同的主題標誌的基礎上,責令學生排名

name   math  physics  chemistry hindi english 
pk   85  65   45   54  40 
ashis  87  44   87   78  74 
rohit  77  47   68   63  59 
mayank  91  81   78   47  84 
komal  47  51   73   61  55 

我們希望結果表明爲(基本上是總結成績)

rank name   total 
1  mayank  381 
2  ashis   370 
3  rohit   314 
4  pk   289 
5  komal   287 
+0

[如何在SQL查詢中SUM兩個字段(HTTPS的可能重複:// stackoverflow.com/questions/14877797/how-to-sum-two-fields-within-an-sql-query) – Henry

+0

請顯示您的代碼以獲得高質量的答案。 – TomServo

回答

0

嘗試這

SELECT @curRank := @curRank + 1 AS rank, name, (math + physics + chemistry + hindi + history) AS total FROM table, (SELECT @curRank := 0) r ORDER BY total DESC; 

這將總結所有的領域,並按降序排序,並添加一個排名。

通過做SELECT @curRank := 0您可以將它全部保留在一個SQL語句中,而無需首先執行SET。

0
SET @rank=0; 

SELECT @rank:[email protected]+1 AS rank,name,(math+physics+chemistry+hindi+english) as total 
FROM tablename ORDER BY total DESC 

這將產生你想要的結果

rank | name | total 

-------------------- 
1 | mayank | 381 
2 | ashis | 370 

更多細節看看mysql ranking results

+0

很好的答案!你可以在我回答的時候在一個SQL語句中處理這個,只是一個小訣竅要知道。 – Henry

+0

是的,那傢伙似乎是新來的sql,所以我不想複雜化。 @名稱 – vijay

+0

感謝您的幫助 –