22,206
社区成员
发帖
与我相关
我的任务
分享
--1.用sql语句把(1)班的各科成绩都大于83的学生按三科总成绩的平均分由高到低排列,应该如何写sql语句?
select * from(
select 姓名,avg(成绩) as 平均成绩
from 表名 k
where 班级='(1)班'
and not exists(select * from 表名 where k.班级=班级 and k.姓名=姓名 and 成绩<=83 )) k
order by 平均成绩 desc
--用sql语句把(1)班的各科成绩都大于83的学生按语文和英语两科成绩的平均分由高到低排列,应该如何写sql语句?
select 姓名,
平均成绩=AVG(成绩)
from(
select 姓名,成绩
from 表名 k
where 班级='(1)班'
and not exists(select * from 表名 where k.班级=班级 and k.姓名=姓名 and 成绩<=83 )) k\
where 科目='语文' or 科目='和英语'
order by 平均成绩 desc
select 姓名,avg(成绩) as 平均分 from tb
where 班级='1班' group by 姓名;
select top 2 姓名,avg(成绩) as 平均分 from tb
where 班级 = '1班'
group by 姓名
order by avg(成绩) desc;
select 姓名 from tb
where 班级 = '1班'
group by 姓名
having count(case when 成绩 > 85 then 1 end) = count(*);