㈠ 有学生表(编号,姓名,班级),成绩表(学生编号,科目编号,成绩) sql查询学生编号,姓名,科目成绩,没成绩的为0
1
select 学生表.编号,
姓名,
isnull(s1.语文成绩,0) as 语文成绩,
isnull(s2.数学成绩,0) as 数学成绩,
isnull(s3.英语成绩,0) as 英语成绩
FROM 学生表 left join
(select 学生编号, 科目, 成绩 as 语文成绩 from 成绩表 where 科目编号 = '语文') s1 on 学生表.编号 = s1.学生编号 left join
(select 学生编号, 科目, 成绩 as 数学成绩 from 成绩表 where 科目编号 = '数学') s2 on 学生表.编号 = s2.学生编号 left join
(select 学生编号, 科目, 成绩 as 英语成绩 from 成绩表 where 科目编号 = '英语') s3 on 学生表.编号 = s3.学生编号
2.
select 班级, 科目编号, avg(成绩) as 平均成绩 from 学生表, 成绩表 where 学生表.编号 = 成绩表.学生编号 group by 班级, 科目编号
㈡ 用sql语句查找各班的及格人数
楼主要的应该是以上结果,把条件放在 case when ..
select 班级,sum(case when 考试分数>=60 then 1 else 0 end) as 及格
from 学生
group by 班级
㈢ SQL 查询某门课程及格的总人数以及不及格的总人数以及没成绩的人数
1、创建测试表,
create table test_score(class_id varchar2(20), student_id varchar2(20), score number);
㈣ sql怎么统计某一课程的各分数段的人数(在php程序里)
实现上面sql查询结果的记录总数
$sql = select count(C.`cid`) as `c` from (select * from `ctable` group by pid) as C left join `ptable` as P on P.`pid` = C.`pid`;
详解,此语句用到了sql子查询,先使用子查询对ctable进行分组查询,然后对分组后的结果集进行统计.
㈤ 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 平均分不及格的学生人数 = count(*)
from 选课表
where 学号 in ( select 学号,avg(成绩)
from 选课表
group by 学号
having avg(成绩) < 60 )
㈦ 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
㈧ SQL查询 统计每门课的选课人数及不及格人数
select a.cnum,a.cname,a.rs,b.bjg_rs
from
(select sec.cnum,c.cname,count(s.snum) as 'rs'
from student s,course c,sc,sections sec
where s.snum = sc.snum and
sc.secnum = sec.secnum and
sec.cnum = c.cnum
group by sec.cnum,c.cname) a
left join
(select sec.cnum,c.cname,count(s.snum) as 'bjg_rs'
from student s,course c,sc,sections sec
where s.snum = sc.snum and
sc.secnum = sec.secnum and
sec.cnum = c.cnum and
sc.score < '60'
group by sec.cnum,c.cname) b
on a.cnum = b.cnum
㈨ sql怎么写统计各分数段的人数
sql怎么写统计各分数段的人数
select count(case 分数字段 when 100 then 1 end) as [满分],
count(case when 分数字段 between 90 and 99 then 1 end) as[90-99分],
count(case when 分数字段 between 80 and 89 then 1 end) as[80-89分],
count(case when 分数字段 between 70 and 79 then 1 end) as[70-79分],
count(case when 分数字段<70 then 1 end) as[70分以下]
from 学生分数表
㈩ 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,给分哟
呵呵