求一条SQL语句:能一次计算出各科前10名学生的平均成绩。

2024年11月23日 08:43
有3个网友回答
网友(1):

select '语文' as 科目, avg(语文) as 平均成绩 from
(select top 10 语文 from 成绩表 order by 语文 desc) as x
union all
select '数学' as 科目, avg(数学) as 平均成绩 from
(select top 10 数学 from 成绩表 order by 数学 desc) as y
union all
select '英语' as 科目, avg(英语) as 平均成绩 from
(select top 10 英语 from 成绩表 order by 英语 desc) as z

如果还有其它科目,可以用同样的方式往后加。

网友(2):

先按科分组,用AVG 函数求平均值

网友(3):

这个必定要返回三列结果,查询条件又不一样,用一条SQL语句的话,我觉得只有用存储过程传参数(科目)要简单点