2010-12-15 34 views
0

假設我有一張有兩列的表(student_id,等級)。如何在固定計數範圍內進行分組?

student_id是一個整數,grade是一個十進制數。

如果我有1000名學生,並且想按照每個10名學生的小組按年級排列他們。

要清楚,這應該產生100個組。第一組錢包含10個最高等級,最後一組包含10個最低等級。

我該怎麼做? 總是歡迎優化。

非常感謝。

若昂

+0

在給定sql標記的標題中不需要[SQL]。 – Donnie 2010-12-15 18:13:46

+0

您的問題不一致。甚至可能不會有10個不同的等級。你可能真的是指「第一組投資者擁有10個最高的學生,最後一個組包含10個最低的學生。」 ??如果你這樣做,那麼意識到這可能是不可能的,因爲具有相同等級的學生組可以根據學生人數跨越(交叉)組邊界。 – 2010-12-15 18:22:23

+0

Charles,第一組包含具有最高成績和最高成績的學生的ID。如果有13個等級最高,我想要的結果是其中10個在第一組中,其中3個在第二組中。 – joaoavf 2010-12-15 18:33:30

回答

1

ntile將由桶的量得到的等級。

select student_id, ntile(100) over (order by grade desc) from student 
相關問題