‘壹’ sql查询平均成绩
select
classid
as
班级编号,max(case
when
sex=0
then
avg_grade
else
0
end)
as
男生平均成绩,
max(case
when
sex=1
then
avg_grade
else
0
end)
as
女生平均成绩
from
(select
classid,sex,avg(grade)
as
avg_grade
from
student
a
inner
join
sc
b
on
a.id=b.id
)
t
group
by
classid
‘贰’ 怎样编写SQL语句求平均成绩
1、打开数据库软件,附加数据库,右键选择新建查询。
‘叁’ 一个sql查询成绩语句问题
问问题前请先给出表结构,否则回答者跟你所需或有差异
另外我的理解是成绩前3名又要考虑到并列的情况,那么这前3名应该为“分数数值前3的所有学生(并非只是3名)”
SELECT
*
FROM
TB_Student
WHERE
stuId
in(
SELECT
stuId
FROM
TB_Score
WHERE
scores
in
(
SELECT
TOP
3
scores
FROM
TB_Score
ORDER
BY
scores
DESC
)
)
解释:根据成绩表TB_Score中的成绩倒叙排列取分数最高的3个分数数值;
再从成绩表中检索分数等于上面3个数值的所有学生编号stuId;
最后根据获得的stuId检索学生信息表获得所需信息
PS:网络管理员看到,强烈建议增加代码显示功能,默认的结构层次看的太碍眼
‘肆’ 查询学生总成绩的sql语句
select 学生.学号 as 姓名, sum(成绩.分数) as 总分
from 学生
left join 成绩 on 成绩.学号=学生.学号
group by 学生.学号
sql语句
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like '%value1%' (所有包含'value1'这个模式的字符串)
排序:select * from table1 order by field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1[separator]
‘伍’ SQL查询学生成绩
--代码如下--
SELECTa.snameAS'姓名'
MAX(CASEb.sidWHEN'0001'THENb.scoreELSE0END)AS'语文'
MAX(CASEb.sidWHEN'0002'THENb.scoreELSE0END)AS'数学'
MAX(CASEb.sidWHEN'0003'THENb.scoreELSE0END)AS'英语'
FROMstudenta,scoresbONa.sid=b.sid
GROUPBYb.sid
‘陆’ sql查询问题 查询成绩分布情况
呵呵,你这是一堆的问题呀:
优秀、良好……各级别的(人数):
首先,假设你的分数是 百分制,优秀即高于85分等。。。。
因此:
select 课程,count(*) as 人数,‘优秀’ as 类别
from 成绩
where 分数>85
group by 课程
union
select 课程,count(*) as 人数,‘良好’ as 类别
from 成绩
where 分数>70 and 分数<=85
group by 课程
union
select 课程,count(*) as 人数,‘及格’ as 类别
from 成绩
where 分数>60 and 分数<=70
group by 课程
分布情况及百分比:
得根据上面的结果来再计算。
先弄个总人数的视图:select count(*) as 总人数 from 成绩
再计算百分比:
select 课程,人数/总人数*100% as 百分比 from 各级别人数 group by 课程,类别
其他的统计也就雷同了。
‘柒’ 简单SQL语句,查询成绩
select * from xs
inner join
(
select km,max(fs) as fs from xs group by km
)w
on xs.km = w.km and xs.fs = w.fs
这样行不?凭想象写的,请参考
‘捌’ sql查询学生成绩表最高分数
以下这些英文都是学生表的常用的,希望你能看懂
1,查询选了所有课的学生
select
sname
from
student
where
snum=(select
sc.snum
from
sc
where
sc.snum=student.snum
group
by
sc.snum
having
count(*)=n)
2.查询不及格学生姓名和挂科的科目
select
sname,cname
from
student,sc,course
where
sc.snum=student.snum
and
sc.cnum=course.cnum
and
score<60
3.查询每个课程选修人数和挂科人数(这个比较复杂)
select
cname,count(不及格)as
选修人数,sum(不及格)as
不及格人数
from(select
cname,case
when
score<60
then
1
else
0
end
as
不及格
from
sc,student,course
where
sc.cnum=course.cnum
and
sc.snum=student.snum)as
abc
group
by
cname
‘玖’ 请问SQL 查询出成绩最高分
请问SQL 查询出成绩最高分
select 姓名,课程名,成绩 from tablename where 成绩=(select max(成绩) from tablename)
‘拾’ 怎样使用sql语句可以多条件查询 比如成绩等级划分
select sum(case when '成绩'=100.0 then 1 else 0 end),
sum(case when '成绩'<100 and '成绩' >=90 then 1 else 0 end),
sum(case when '成绩'<90 and '成绩' >=80 then 1 else 0 end),
sum(case when '成绩'<80.0 and '成绩' >=70 then 1 else 0 end),
sum(case when '成绩'<70.0 and '成绩' >=60 then 1 else 0 end),
sum(case when '成绩'<60 then 1 else 0 end) from table
可以按分数间隔统计出成绩分布,分别是100分有多少人,90~100,80~90,70~80,60~70,60以下的区间分别有多少人。