Office中国论坛/Access中国论坛

标题: 将数据排序后,如何提取前若干名的数据 [打印本页]

作者: hanbaowei    时间: 2003-9-27 23:40
标题: 将数据排序后,如何提取前若干名的数据
我们学校的成绩统计中需要提取全年级学生排名在前10名,前30名,前60名……的学生,请问如何实现?
作者: sea.er    时间: 2003-9-28 03:06
select top 10 *
from yourtabel
order by 成绩

以此类推
不过有个小问题,你试试也许会发现:(
作者: hanbaowei    时间: 2003-9-28 17:16
我试了你说的办法,很好!太谢谢你了!不过我又遇到了两个问题:
我如何解决选择第20名到第50名之类的问题呢?还有我想从我选出的数据中统计各个班级中各有多少人。(例如第20名到第50名中共有三个班的学生,我如何统计在第20名到第50名中这三个班中各有多少人呢?)
作者: sea.er    时间: 2003-9-28 19:10
你取出前50明的后30名,然后group by 班级,count 姓名 就可以了
作者: zhuren    时间: 2003-9-28 19:16
我想问:怎么提取最后几个记录啊?
多谢
作者: sea.er    时间: 2003-9-28 19:27
最后几个记录跟最前几个记录的概念是一样的,只不过是升序降序的问题
作者: hanbaowei    时间: 2003-9-28 21:12
标题: 请具体解释一下
不好意思,我实在是一个初级水平,请问"提取前50明的后30名,然后group by 班级,count 姓名"我应该具体怎么做?

作者: sea.er    时间: 2003-9-28 21:28
你把你的东西传上来吧
作者: dragonszr    时间: 2003-9-28 21:44
那是个排序问题,前20名,当然按分数降序取top 20,后30名,则按升序取top30,就这样而已,group by 班级,count 姓名,在工具栏里选择“合计”,就会出现group by ,count等等
作者: zhuren    时间: 2003-9-28 22:45
以下是引用sea.er在2003-9-28 11:26:35的发言:
最后几个记录跟最前几个记录的概念是一样的,只不过是升序降序的问题


请sea.er再伸援助之手:
按升降序是否要用
select top 10 * from
tablename
order by fieldname desc

我想要表中的最后几条记录,
但并没有哪个字段可以让我按输入时的顺序排序?
我该怎么办?
多谢了
作者: xingzhihao    时间: 2003-9-29 00:48
自动编号字段
作者: sea.er    时间: 2003-9-29 01:03
对,你应该加一个字段,或者编号,或者时间
作者: hanbaowei    时间: 2003-9-30 06:42
如果我有三个班的100名学生,现在我想要各班前10名,20-30名,30-60名的学生数目。按照dragonszr的说法取前10名的数据当然很好统计,如果要取20-30名的数据,我得先取出前30名的学生,然后升序排列,然后再从这个排列中取出前10名的学生数据,依此类推,这样做岂不是太麻烦了,我取一个分数段要做两个查询,如果要取5个分数段,我要做10个查询!!!有没有更为简单的办法呢?我在EXCEL中尝试了以下,发现在EXCEL中完成我的操作并不是很困难。请教各位大虾,我先谢了!
作者: hanbaowei    时间: 2003-9-30 06:45
请速速回复为盼


[此贴子已经被作者于2003-9-29 22:46:43编辑过]






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3