2010-03-15 84 views
1

我有一個問題和沒有它不是作業,它只是一個程序員誰已經離開SQL很長一段時間不得不解決問題。基本sql組由百分比

我有如下表:

create table students(
    studentid int identity(1,1), 
    [name] varchar(200), 
    [group] varchar(10), 
    grade numeric(9,2) 
) 
go 

該集團是任意的東西,假設它是下面的「組A」,「B組」 ......等等。

等級爲上0分 - 100

如果有5個學生每組等級隨機分配在,什麼是基於獲得的前3的學生(頂部80%)的最佳方法在他們的成績?

更具體的,如果我有以下幾點:

Ronald, Group A, 84.5 
George H, Group A, 82.3 
Bill, Group A, 92.0 
George W, Group A, 45.5 
Barack, Group A, 85.0 

我會回來羅納德·比爾,和巴拉克。我還需要對其他組進行此操作。

+1

我認爲巴拉克應該在此時得到一個不完整的:) – Ray 2010-03-15 20:16:56

+0

是什麼80%意味着什麼?最好的80%的學生? 80%百分位數(前20%的學生)?得分超過80分的學生?得分高於平均分80%的學生? – van 2010-03-15 20:20:02

回答

1

使用TOP (n) PERCENT條款:

SELECT TOP (60) PERCENT * FROM students ORDER BY grade DESC