㈠ sql语句求助:统计各班每门课程成绩均不及格的同学人数
根据题目要求,简单分析可以知道,其实这条查询语句只使用“学生选课”和“学生”这两张表即可。此处应该使用“左连接”,用学生表中的班级字段进行“分组”,用COUNT()函数对分数小于60的同学的个数进行统计。
SELECT 学生.班级,COUNT(学生选课.成绩<60)
FROM 学生选课
LEFT JOIN 学生
ON 学生选课.学生ID=学生.学生ID
GROUP BY 学生.班级
你可以进行验证一下,如果不对,或者有更优化的方法,可以相互学习!
㈡ 如何用sql语句查出学生表成绩小于60为不及格60-80为良好80-90为优秀
select name,case when 成绩<60 then 不及格 when 成绩>=60 and 成绩<80 then 良好 when 成绩>=0 and 成绩<90 then 优秀 end as 成绩情况 ,from 表名。
注意,在输入sql语句的时候,要在英文环境下输入。否则可能会出现代码不识别。
㈢ 使用SQL命令实现查询,查询平均分不及格的学生人数。怎么写啊
已知:
选课表(学号,课程编号,成绩)
查询平均分不及格的学生人数的SQL代码:
select 平均分不及格的学生人数 = count(*)
from 选课表
where 学号 in ( select 学号,avg(成绩)
from 选课表
group by 学号
having avg(成绩) < 60 )
㈣ SQL统计每门课程的不及格人数
你的要求有点特别,要求 学号!
如果只是
统计每门课程的不及格人数下面的SQL就可以啦:
select cnum,count(cnum) as 不及格人数
from sc
where score < 60
group by cnum 注意:是对课程号分组哟,楼上的是错的。
如果你要输出学号:
Select sc.snum as 学号,
a.cnum as 课程号,
a.不及格人数
From sc,
(select cnum,count(cnum) as 不及格人数
from sc
where score < 60
group by cnum) as a
where sc.score<60 and sc.cnum=a.cnum
以上我相信是没有问题的,你测试一下!
如果OK,给分哟
呵呵
㈤ SQL语句求助,查询出每门课程及格和不及格的人数
---以下在SQL2005执行通过--
---结果将以 科目、及格数、不及格数 显示
select * from
(select col2,count(*) as [及格数]
from tb
where col1>=60
group by col2
)t
outer apply
(select count(*) as [不及格数]
from tb
where col1<60 and t.col2= col2
group by col2
)m
-----这应该是楼主想要的了吧。
㈥ SQL 查询某门课程及格的总人数以及不及格的总人数以及没成绩的人数
你的要求有点特别,要求
学号!
如果只是
统计每门课程的不及格人数下面的sql就可以啦:
select
cnum,count(cnum)
as
不及格人数
from
sc
where
score
<
60
group
by
cnum
注意:是对课程号分组哟,楼上的是错的。
如果你要输出学号:
select
sc.snum
as
学号,
a.cnum
as
课程号,
a.不及格人数
from
sc,
(select
cnum,count(cnum)
as
不及格人数
from
sc
where
score
<
60
group
by
cnum)
as
a
where
sc.score<60
and
sc.cnum=a.cnum
以上我相信是没有问题的,你测试一下!
如果ok,给分哟
呵呵
㈦ SQL 查询某门课程及格的总人数以及不及格的总人数以及没成绩的人数
1、创建测试表,
create table test_score(class_id varchar2(20), student_id varchar2(20), score number);
㈧ SQL语句 统计各个学生的不及格科目数量及不及格率 ,2条语句
--创建表
createtablestudent
(
姓名nvarchar(20),
数学float,
语文float,
英语float,
体育float,
物理float,
化学float
)
go
--插入语句
insertintostudentvalues('枫',50,60,70,50,60,40)
insertintostudentvalues('巅',60,80,50,58,80,90)
go
--查询
select*fromstudent
go
--不及格科目数量
;withtestas
(
(select姓名,'数学'科目,数学成绩fromstudentwhere数学<60)unionall
(select姓名,'语文'科目,语文成绩fromstudentwhere语文<60)unionall
(select姓名,'英语'科目,英语成绩fromstudentwhere英语<60)unionall
(select姓名,'体育'科目,体育成绩fromstudentwhere体育<60)unionall
(select姓名,'物理'科目,物理成绩fromstudentwhere物理<60)unionall
(select姓名,'化学'科目,化学成绩fromstudentwhere化学<60)
)
select姓名,count(姓名)不及格科目数量fromtestgroupby姓名
--不及格率
;withtestas
(
selectdistinct
(selectcount(姓名)fromstudent)a,
(selectcount(姓名)fromstudentwhere数学<60)b,
(selectcount(姓名)fromstudentwhere语文<60)c,
(selectcount(姓名)fromstudentwhere英语<60)d,
(selectcount(姓名)fromstudentwhere体育<60)e,
(selectcount(姓名)fromstudentwhere物理<60)f,
(selectcount(姓名)fromstudentwhere化学<60)g
fromstudent
)
select
convert(nvarchar(20),cast(basfloat)/a*100)+'%'数学不及格率,
convert(nvarchar(20),cast(casfloat)/a*100)+'%'语文不及格率,
convert(nvarchar(20),cast(dasfloat)/a*100)+'%'英语不及格率,
convert(nvarchar(20),cast(easfloat)/a*100)+'%'体育不及格率,
convert(nvarchar(20),cast(fasfloat)/a*100)+'%'物理不及格率,
convert(nvarchar(20),cast(gasfloat)/a*100)+'%'化学不及格率
fromtest
执行结果如图所示
㈨ SQL语句求助:统计各班每门课程成绩均不及格的同学人数
select
a.score
,count
as
人数
,col2
as
科目
from
(select
case
when
col1>=60
then
'及格'
else
'不及格'
end
as
score
,col2
from
tb
g
)
a
group
by
a.score,a.col2