2016-06-25 67 views
0

我在Android中使用SQLite數據庫。我的數據庫中有一個名爲tstResult的表。如何從SQLite中的考試結果生成優點列表

AI SubID StudID StudName TotalMarks ObtainedMarks 
-------------------------------------------------------- 
1 | 1 | 1 | Jakir | 100 | 90 
2 | 1 | 2 | Rubel | 100 | 75 
3 | 1 | 3 | Ruhul | 100 | 82 
4 | 1 | 4 | Beauty | 100 | 82 
5 | 1 | 5 | Bulbul | 100 | 96 
6 | 1 | 6 | Ripon | 100 | 82 
7 | 1 | 7 | Aador | 100 | 76 
8 | 1 | 8 | Jibon | 100 | 80 
9 | 1 | 9 | Rahaat | 100 | 82 

現在我想要一個SELECT查詢,根據獲得的標記生成優劣列表。在這個查詢中,獲得的分數「96」將成爲優秀列表中的最高分,所有「82」分將依次放在優秀列表中。類似這樣的:

StudID StudName TotalMarks ObtainedMarks Merit List 
---------------------------------------------------------- 
| 5 | Bulbul | 100 |  96  | 1 
| 1 | Jakir | 100 |  90  | 2 
| 9 | Rahaat | 100 |  82  | 3 
| 3 | Ruhul | 100 |  82  | 3 
| 4 | Beauty | 100 |  82  | 3 
| 6 | Ripon | 100 |  82  | 3 
| 8 | Jibon | 100 |  80  | 4 
| 7 | Aador | 100 |  76  | 5 
| 2 | Rubel | 100 |  75  | 6 

我該怎麼做?任何建議都很有幫助。

回答

1

你可以指望明顯大於獲得的數量(+1)

SELECT res.StudId 
    , res.StudName 
    , res.TotalMarks 
    , res.ObtainedMarks 
    , (
     SELECT 1+COUNT(DISTINCT obtainedMarks) 
     FROM tstResult greater 
     WHERE greater.ObtainedMarks > res.ObtainedMarks 
    ) MeritList 
FROM tstResult res 
ORDER BY res.ObtainedMarks DESC 

Example

0

您可以使用此查詢

SELECT * FROM tstResult ORDER BY ObtainedMarks DESC

,這將給你的結果排序順序所獲得的痕跡。