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
如果还有其它科目,可以用同样的方式往后加。
先按科分组,用AVG 函数求平均值
这个必定要返回三列结果,查询条件又不一样,用一条SQL语句的话,我觉得只有用存储过程传参数(科目)要简单点