你 select 后面只写了sno。。。没有avg成绩,但是最后group by 了,当然会报错。还有你的sno没有指明是哪个表的,后面带了x和y,sc表也需要指明。
平均成绩也没搞明白。。
那只能这样
select a.sno,a.name,avg(b.score) as avgscores from sc a,course b where a.sno =b.sno and b.cno in ('001','002') group by a.sno,a.name order by avgscores desc
sno表示的是平均成绩??
group by 是分组
order by是排序
select sno from table where 条件 order by 字段名 desc --降序排列
根据你的描述应该会有三张表,把这三张表用select * from查询出来截图看一下,那样写出来的问题就少点,你这样提供信息不怎么全,重新补充一下问题吧,
大致就是按照学号分组,求个平均成绩,排序一下就可以。