【发布时间】:2010-12-16 02:12:13
【问题描述】:
假设我有一个包含两列 (student_id,grade) 的表。
student_id 是整数,grade 是十进制数。
如果我有 1000 名学生,并且想按年级将他们分组,每组 10 名学生。
为了清楚起见,这应该产生 100 个组。第一组包含 10 个最高成绩,最后一组包含 10 个最低成绩。
我应该怎么做? 总是欢迎优化。
非常感谢。
若昂
【问题讨论】:
-
标题中不需要[SQL],给定sql标签。
-
您的问题不一致。甚至可能没有10个不同的等级。您是否真的是说“第一组包含 10 名最高的学生,最后一组包含 10 名最低的学生”。 ??如果你这样做了,那么意识到这可能是不可能的,因为具有相同年级的学生组可能会跨越(跨越)基于学生数量的组边界。
-
Charles,第一组包含有 10 个最高成绩的学生的 id 和各自的成绩。如果有 13 个等级等于最大值,我想要的结果是第一组有 10 个,第二组有 3 个。
标签: sql postgresql