| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1698 人关注过本帖
标题:如何统计一个年级各个班各科位于年级前10%名次各有多少人?
只看楼主 加入收藏
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
结帖率:82%
收藏
已结贴  问题点数:20 回复次数:37 
如何统计一个年级各个班各科位于年级前10%名次各有多少人?
如何统计一个年级各个班各科位于年级前10%名次各有多少人?

[ 本帖最后由 dzy123 于 2013-11-18 11:17 编辑 ]
搜索更多相关主题的帖子: 如何 统计 
2013-11-18 10:34
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:5 
这个命题是不是伪命题?一个班人数应该是固定的吧?然后各科的前10%不就是班级人数10%么?还用另外统计人数?应该是统计各科前10%各是哪些人吧?
2013-11-18 10:40
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
是年级的10%我说错了
2013-11-18 10:42
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
每个年级的人数也是相对固定的吧?道理和班级的前10%是一样的呀。比如:一个年级200人,各科的前10%就是分数最高的前20个人呗,还是应该统计出哪20个人才对啊。
2013-11-18 10:47
b土木丁口
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:264
专家分:189
注 册:2013-9-12
收藏
得分:0 
路过
2013-11-18 10:57
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:10 
以下是引用taifu945在2013-11-18 10:47:42的发言:

每个年级的人数也是相对固定的吧?道理和班级的前10%是一样的呀。比如:一个年级200人,各科的前10%就是分数最高的前20个人呗,还是应该统计出哪20个人才对啊。
是的 如你所说 就是统计各科前20名
2013-11-18 11:28
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:5 
*假设有这个表
CREATE CURSOR 学生成绩 (年级 c(20),班级 c(20),学号 c(10),姓名 c(10),科目 c(20),成绩 n(10,2))

*求出各年级10%的人数
SELECT 年级,INT(COUNT(*)*0.1) 百分10人数  FROM 学生成绩 INTO CURSOR 各年级总人数 GROUP BY 年级

*对各科成绩预排序(注意:没考虑处理同分情况,若需要即要另外处理)
SELECT *,RECNO() 序号 from 学生成绩 INTO CURSOR 学生各科成绩排序 READWRITE  ORDER BY 年级,科目,成绩 DESC

*对各科从1开始排序
REPLACE ALL 序号 WITH RECNO() IN 学生各科成绩排序
SELECT 年级,科目,MIN(序号) 最小序号 FROM 学生各科成绩排序 INTO CURSOR 求各科序号临时表 GROUP BY 年级,科目
UPDATE 学生各科成绩排序 SET 序号=序号-b.最小序号+1 from 求各科序号临时表 b WHERE 学生各科成绩排序.年级=b.年级 AND 学生各科成绩排序.科目=b.科目

*求出一个班各科在年级前10%各有多少人
SELECT a.年级,a.班级,a.科目,COUNT(*) 年级前10%人数 FROM 学生各科成绩排序 a,各年级总人数 b INTO CURSOR 班各科年级前10%人数 WHERE a.年级=b.年级 AND a.序号<=b.百分10人数 GROUP BY a.年级,a.班级,a.科目
2013-11-18 11:48
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
如年级语文前10%有100人在各个班分别是多少人
2013-11-18 12:10
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用dzy123在2013-11-18 12:10:16的发言:

如年级语文前10%有100人在各个班分别是多少人
如你说的,那就看第100人的语文分数,然后求出每个班大于等于这个分数的人数即可
2013-11-18 12:22
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
程序代码:
比如第100人的语文分数为78
select 班级,coun(语文) 人数 fromwhere 语文>=78 grou by 班级
或
select 班级,sum(iif(语文>=78,1,0)) 人数 from 表 grou by 班级
2013-11-18 12:26
快速回复:如何统计一个年级各个班各科位于年级前10%名次各有多少人?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012584 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved