select classno,(select classno,round(avg(grade),2) pjf from stscore group by classno)/( select sum(pjf) from (select classno,round(avg(grade),2) pjf from stscore group by classno)) from stscore > ORA-00913: 值过多
时间: 2024-02-01 12:02:36 浏览: 86
北京邮电大学 BUPT 数据库课程 实验一 查询代码 数据库语言MySQL
这个 SQL 语句语法有问题,子查询中返回了两列数据(classno和pjf),但是在主查询中只有一个列来接收子查询的结果。你需要将子查询改成只返回一列数据,或者将主查询中的列增加一个来接收子查询的第二列数据。
以下是一个例子,将子查询改成只返回一个列:
```
SELECT classno,
(SELECT round(AVG(grade),2)
FROM stscore s2
WHERE s1.classno = s2.classno) pjf
FROM stscore s1
GROUP BY classno;
```
这个查询将每个班级的平均分作为子查询结果返回,并将其与每个班级的 classno 组合在一起。
阅读全文