| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1476 人关注过本帖
标题:帮我看下,这题我这样写不知道有没有对
只看楼主 加入收藏
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
 问题点数:0 回复次数:8 
帮我看下,这题我这样写不知道有没有对
某班级的学生成绩表包含列“学号”、列“课程代号”、列“成绩”、列“学期号”,
1)请统计学期号为“第三学期”的每个学生所有科目的平均成绩。

select avg(成绩) from 成绩表 where 学期号=3 group by 学号,课程代号
搜索更多相关主题的帖子: 课程 学号 代号 group 学生 
2008-06-12 21:25
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
这三题我总感觉有点问题……又没答案,高人帮我看下哪有问题谢谢!
某班级的学生成绩表包含列“学号”、列“课程代号”、列“成绩”、列“学期号”,
1)请统计学期号为“第三学期”的每个学生所有科目的平均成绩。
2)现在想评定该班级第二学年(包括第三学期和第四学期)的优秀学生奖学金,要求从该班级选出平均成绩排前5名的同学。请用SELECT语句显示这些同学的学号和平均成绩。(要考虑可能有多个同学并列第5名)
3)学校规定前三学年(第一学期到第六学期)总平均分在90分以上而且没有一次考试不及格(成绩>=60分)的同学可以参加学校最高级别的评奖。请用SELECT语句显示该班级中满足评奖条件的候选人的学号和前三学年的总平均分。
1)select avg(成绩) from 成绩表 where 学期号=3 group by 学号,课程代号
2)select top 5 with ties * from 成绩表 order by avg(成绩)
3) select 学号,avg(成绩) from 成绩表 where avg(成绩)>90 and 成绩>=60 and 学期号<=6 group by 学号
2008-06-12 21:48
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
2008-06-13 12:48
bb3852
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-4-21
收藏
得分:0 
1)看起来没什么语法错误,应该对的
2)3)是错的,where 字句不能直接用avg函数
2008-06-14 13:05
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
1:
select avg(成绩) from 成绩表 where 学期号=3 group by 学号,课程代号

不需要课程代号了;

2:
order by avg(成绩)

order by 默认是升序排列的;

3:
select 学号,avg(成绩) from 成绩表 where avg(成绩)>90 and 成绩>=60 and 学期号<=6 group by 学号

这样并没排除有不及格科目的学生,只是忽略了不及格的科目。考虑一个特殊情形:学生A有两门课程,分别是59分和91分,那么学生A也满足上述条件。

select 学号,avg(成绩) from 成绩表 where 学号 not in (select disctinct 学号 from 成绩表 where 成绩<60) group by 学号 having avg(成绩)>90

“没有一次考试不及格”,也就是学号不在“有不及格科目”的学号集合中。

[[it] 本帖最后由 provoke 于 2008-6-14 20:38 编辑 [/it]]

爱我至爱,至死不渝!
2008-06-14 20:28
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
原来可以用子查询解决这问题啊,我就感觉嘛有点问题,可就发现不了,楼上的两位大大谢谢啦
2008-06-14 23:56
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
select 学号,avg(成绩) from 成绩表 where 学号 not in (select disctinct 学号 from 成绩表 where 成绩<60) group by 学号 having avg(成绩)>90
--和里的having 和where可以一起出现吗?
2008-06-15 01:26
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
2008-06-16 22:52
jxyga111
Rank: 8Rank: 8
来 自:中華人民共和國
等 级:贵宾
威 望:33
帖 子:6015
专家分:895
注 册:2008-3-21
收藏
得分:0 
你再和GROUP BY
2008-06-17 11:16
快速回复:帮我看下,这题我这样写不知道有没有对
数据加载中...
 
   



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

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