sql 语言查询 查询出有两门不及格的学生信息。 查询各个班级的各门课程的平均分

只要写出大体步骤,答题关键词!(1)如何体现两门不及格!(2)如何体现各门课程的平均分,各个班级!令有些词可以自己写(题中没有写到的如student,class,scor... 只要写出大体步骤,答题关键词!
(1)如何体现两门不及格!
(2)如何体现各门课程的平均分,各个班级!
令有些词可以自己写(题中没有写到的如student,class,score等)
急急急急急!~!!!
(1)查询出有两门不及格的学生信息。
(2)查询各个班级的各门课程的平均分
展开
 我来答
ser0326
2019-12-08 · TA获得超过1.4万个赞
知道答主
回答量:30
采纳率:100%
帮助的人:6783
展开全部

1、查询出有两门不及格的学生信息:

create table student(

sno int not null primary key,

sname varchar(10)

)

create table center(

cno int not null primary key,

cname varchar(10)

)

create table sgrade(

sno int ,

cno int ,

sgrade int

)

 2、查询各个班级的各门课程的平均分:

select sno, avg(sgrade) avgs

from sgrade

group by sno

扩展资料:

用Where子句配合score<60的条件,筛选出所有不及格的人和其不及格的课程。

where是数据库中的一个指令,一般用于规定选择的标准。SELECT列名称FROM表名称WHERE列运算符值。

对于学生的不及格信息可以使用COUNT函数,用于Excel中对给定数据集合或者单元格区域中数据的个数进行计数,其语法结构为COUNT(value1,value2, ...)。COUNT函数只能对数字数据进行统计。

参考资料来源:百度百科-COUNT函数

参考资料来源:百度百科-where (数据库中的一个指令)

wu_dtc
推荐于2017-11-24 · TA获得超过668个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:270万
展开全部
(1)查询出有两门不及格的学生信息。
思路:
1.先用Where子句配合score<60的条件,筛选出所有不及格的人和其不及格的课程
2.再用group by子句依据姓名进行分组,并用count函数来统计每个人不及格的课程数
3.最后用having子句对分组聚合后的结果进行筛选出count统计结果等于2的学生
写下来大概是这样的
select student,count(*)
from 表
where score<60
group by student
having count(*)=2

(2)查询各个班级的各门课程的平均分

思路:
就是按班级和课程来分组,求改组班级和课程的平均分

select class,课程,avg(score)
from 表
group by class,课程
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
177******36
2020-04-17
知道答主
回答量:1
采纳率:0%
帮助的人:611
展开全部
分别查询各个科目不及格的学生 UNION ALL查询到的名字 最后分组条件查询就好了
select * from ((select 姓名 from student where clazz1<60)UNION ALL (select 姓名 from student where clazz2 <60) ) as a GROUP BY a.姓名 having count(*) >1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinaokay
2011-06-27 · TA获得超过118个赞
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:132万
展开全部
--student 学生表,center 课程表 sgrade 成绩表
create table student(
sno int not null primary key,
sname varchar(10)
)

create table center(
cno int not null primary key,
cname varchar(10)
)

create table sgrade(
sno int ,
cno int ,
sgrade int
)
insert into student values(11,'a');
insert into student values(12,'b');
insert into student values(13,'c')

select * from student

insert into center values(21,'aa');
insert into center values(22,'bb');
insert into center values(23,'cc')

delete from student where sno =23

insert into sgrade values(11,21,54);
insert into sgrade values(12,22,57);
insert into sgrade values(11,21,51);
insert into sgrade values(12,21,36);
insert into sgrade values(11,21,28);
insert into sgrade values(12,22,42);
insert into sgrade values(11,21,59)

insert into sgrade values(11,21,79);
insert into sgrade values(12,22,85);
insert into sgrade values(11,21,90);
insert into sgrade values(12,21,96);
insert into sgrade values(11,21,98);
insert into sgrade values(12,22,94);
insert into sgrade values(11,21,99)

---查询两门及以上成绩小于60的学生:
select st.sno ,st.sname ,count(*)--- 门数
from student st ,sgrade sg
where st.sno=sg.sno and sgrade < 60
group by st.sno ,st.sname
having count(*)>=2

--查询平均成绩 :
select sno, avg(sgrade) avgs
from sgrade
group by sno

已在SQL SERVER 2000 或2005上测试通过。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lsfh0000
2011-06-27 · TA获得超过295个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:263万
展开全部
分开来写啊 写成两条 你的表是 学生和课程为key的
按照两个条件来麻烦
还不如分开来写
更多追问追答
追问
不会,怎么分开写,好长时间没学了!!!
忘了,是两条题目!!!!
追答
select * from ..  where  student=''  and  score <'60'
select class,avg(score) from where class=''
好久没写了 大概是这样吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式