学生班级成绩sql
❶ sql语句:已知学生表student 字段学生id 学生姓名 班级id 课程名称 考试成绩
oracle.(与sql server的sql语句主要在函数上,我记得sql server没有nvl 有nullif)
(1)
select b.班级名称,a.课程名称,a.平均分 from (select 班级id,课程名称,avg(nvl(考试成绩,0)) 平均分 from student group by 班级id,课程名称) a,class b where a.班级id=b.班级id
(2)
select * from student, (select 学生姓名,count(*) from student where 考试成绩<60 group by 学生姓名 having count(*)>2) a where 考试成绩<60 and student.学生姓名=a.学生姓名
❷ sql制作成绩单,显示班级,学生姓名,科目名称,成绩
在制作之前至少应该有两张表(如果不需要显示班级的详细信息),grade(成绩表)和student(学生表)
表的结构设计分别为:
student:
sid:编号,自增长类型,主键
sno:学号 varchar()长度按自己需求设置,not null
sname:姓名varchar()长度按自己需求设置
sclass:班级
...其他属性按实际需求设置
grade(成绩表):
gid:编号,自增长类型,主键
gno:学号 not null
gcoursename:科目名称
gscore:成绩 float
...其他属性按实际需求设置
实现语句:
selecta.sclass,a.sname,b.gcoursename,b..sno=b.gno
❸ 有学生表(学号,姓名,班级,总成绩),要得到每个同学的学号和总成绩,则SQL查询语句是
SELECT 学号,总成绩 FROM 学生表;
每个词之间有空格 ,注意逗号。
❹ SQL 取各班成绩最好学生信息
// *** 其它说明,如果一个班级的最高分有多人,会显示多行专,希望对你有所属帮助
select A.class as class,C.name as name,B.score as score
from
( select distinct class from score ) A left join
(
select class,max(score) as score
from score
group by class
) B on A.class=B.class left join
(
select class,name,score from score
) C on A.class =C.class and B.score=C.score
❺ 数据库sql查询语句,关于班级信息,如下:学生名字,编号,班级,成绩,把每个班级最大成绩前20名,列出来
若为oracle数据库,则使用rownom来进行查询
select * from
(
select * from 班级信息
order by 成绩 desc
)
where rownom<=20
;
-------推荐答案oracle数据库那个sql语句有问题回,查出答来的还是表里面前20条数据,只是把这20条数据给降序排列了,而不是最大成绩的前20.
--------------------------------------
若为sqlserver,则为
select top 20 成绩
from 班级信息
order by 成绩 desc
;
❻ 有学生表(编号,姓名,班级),成绩表(学生编号,科目编号,成绩) 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查询语言
selectcourseas'成绩总和',
sum(casewhena='jsd1701'thenscoreelse0end)as'jsd1701',
sum(casewhena='jsd1702'thenscoreelse0end)as'jsd1702'
...
from表格内名容groupbycourse;
❽ 用sql语句,查询每个班级成绩排名前三名的学生姓名
1、首先在打开的SQLServer中,假设有两条数据中,包含有【张】,但是这个张一前一后,如下图所示。
❾ 求一条SQL语句查出三年级学生的总成绩排名:学生姓名,老师姓名,所属班级,总分,排名
求一条SQL语句查出三年级学生的总成绩排名:学生姓名,老师姓名,所属班级,总分,排名
select
学生表a.名称 as 学生姓名,
老师表b.名称 as 老师姓名,
班级表c.名称 as 所属班级,
总分表g.总分 as 总分,
rownum as 排名
from
(select
学生编号 as 学生编号,
sum(考试成绩) as 总分
from
成绩表f
group by 学生编号)总分表g
inner join
学生班级表d
on
学生班级表d.学生编号 = 总分表g.学生编号
inner join
老师班级表e
on
老师班级表e.班级编号 = 学生班级表d.班级编号
inner join
班级表c
on
班级表c.编号 = 老师班级表e.班级编号
inner join
学生表a
on
学生表a.编号 = 学生班级表d.学生编号
inner join
老师表b
on
老师表b.编号 = 老师班级表e.老师编号
where
班级表c.年级 = '三年级'
order by 总分表g.总分 desc
不同数据库取得rownum的方法不一样注意变下
❿ 一张学生成绩表内SQL查询每个班级每门课程的平均分
select avg(分数复制) as 平均分, rtrim(cast(sum(case when 分数>=60 then 1 end)/count(*)*100 as char(10)))+'%' as 及格率 from A group by 班级,课程