| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1698 人关注过本帖
标题:如何统计一个年级各个班各科位于年级前10%名次各有多少人?
只看楼主 加入收藏
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
回复 20楼 tlliqi
献丑了
2013-11-19 15:47
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用bccn0906在2013-11-19 15:47:42的发言:

献丑了
向你学习
2013-11-19 15:54
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
再次感谢各位热心帮助,再请教下 在表中我想用 sele * from 表名 order by val(left(bjmc,len(bjmc)-2))提示order by 错误请问如何改下
或者说如何对字符字任字段排序,字段样式是这样的1班2班3班4班这种(因为这种导入的数据所以班级格式不对)
我原来在vb中加access 是用instr()排序中文字段

[ 本帖最后由 dzy123 于 2013-11-19 16:20 编辑 ]
2013-11-19 16:19
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
以下是引用dzy123在2013-11-19 16:19:40的发言:

再次感谢各位热心帮助,再请教下 在表中我想用 sele * from 表名 order by val(left(bjmc,len(bjmc)-2))提示order by 错误请问如何改下
或者说如何对字符字任字段排序,字段样式是这样的1班2班3班4班这种(因为这种导入的数据所以班级格式不对)
sele *,val(left(bjmc,len(allt(bjmc))-2)) 排序 from 表名 order by 排序

[ 本帖最后由 bccn0906 于 2013-11-19 16:22 编辑 ]
2013-11-19 16:21
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
想按科目排序这种又怎么实现,比如有个字段叫科目,下面是政治,物理,语文,数学,英语,等 想按语文,数学,英语,政治,物理不好意思,问题太多

[ 本帖最后由 dzy123 于 2013-11-19 17:20 编辑 ]
2013-11-19 17:07
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用dzy123在2013-11-19 17:07:26的发言:

想按科目排序这种又怎么实现,比如有个字段叫科目,下面是政治,物理,语文,数学,英语,等 想按语文,数学,英语,政治,物理不好意思,问题太多
是:语文,数学,英语,政治,物理

还是:语文
      数学
      英语
      政治
      物理
2013-11-19 17:25
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
还是:科目
      语文
      数学
      英语
      政治
      物理
是这种
想按它排序
2013-11-19 17:30
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
以下是引用dzy123在2013-11-19 17:30:01的发言:

还是:科目
      语文
      数学
      英语
      政治
      物理
是这种
想按它排序
SELECT *,ICASE(科目='语文',1,科目='数学',2,科目='英语',3,科目='政治',4,科目='物理',5,9) 排序 FROM 表 ORDER BY 排序
2013-11-19 17:55
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
谢谢了解决了
2013-11-19 18:21
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
虽然问题解决了,但向楼主建议一下,表不能设计成这样。如果课程再多怎么办?如果还有选修课怎么办?应该设计成如下结构:
图片附件: 游客没有浏览图片的权限,请 登录注册

那么统计语句就没那么复杂了,而且可以有任意多的课程,以及选修课(即不是所有人都参加的课程)。以分班统计为例,语句可以写成:
SELECT 班级,课号,课程名,INT(COUNT(课号)*0.1+1) 前10%人数 ;
   FROM (SELECT DISTINCT 班级,课号,课程名,成绩 ;
            FROM T1CJ_temp ORDER BY 1,2,4 DESC)T1 ;
   GROUP BY 1,2,3
运行结果如下:
图片附件: 游客没有浏览图片的权限,请 登录注册

2013-11-19 21:27
快速回复:如何统计一个年级各个班各科位于年级前10%名次各有多少人?
数据加载中...
 
   



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

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