You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法计算指定学生成绩平均值并在另一表中作为列展示

解决方法

首先,如果你只是想查询单个学生(比如ID为'1')的平均成绩,直接把AVG()函数作用在成绩字段上即可,不需要嵌套子查询:

SELECT AVG(Ocena) AS 平均成绩
FROM Ocene
WHERE DjakID = '1'

如果要把所有学生的平均成绩作为一列关联到另一张学生表(假设学生表名为Djak,包含学生ID、姓名等信息),有两种常用写法:

方法1:子查询作为字段

这种写法适合需要保留学生表中所有记录(包括没有成绩的学生)的场景:

SELECT
    d.DjakID,
    d.Ime, -- 假设这是学生名字字段
    (SELECT AVG(Ocena) FROM Ocene o WHERE o.DjakID = d.DjakID) AS 平均成绩
FROM Djak d

方法2:JOIN + GROUP BY

通过左连接关联两张表,再按学生ID分组计算平均:

SELECT
    d.DjakID,
    d.Ime,
    AVG(o.Ocena) AS 平均成绩
FROM Djak d
LEFT JOIN Ocene o ON d.DjakID = o.DjakID
GROUP BY d.DjakID, d.Ime

你之前尝试添加AVG没成功,大概率是因为把函数加在了嵌套子查询的内部却没做聚合,或者没有正确关联两张表的字段。上面两种写法可以根据你的实际表结构选择使用。

内容的提问来源于stack exchange,提问作者Dragan Delić

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:34:56