average - 在 ISQL 中不使用变量的情况下,将列中的值减去同一列的平均值

标签 average isql

我有 2 张 table : 分数(学生号、分数) 学生(SNum,SName)

如果我这样做

从 Marks join Student 中选择 SName、marks-avg(marks) on SNum = Studentnum

然后我只返回 1 行。

有没有一种方法可以返回所有学生姓名列表以及学生分数与平均分的差值(学生分数 - 平均数)而不为平均分分配变量?

最佳答案

您想要混合聚合值和非聚合值。这使用子查询,但可能还有其他选项,具体取决于您的服务器。

SELECT
    SName,
    marks - (SELECT avg(marks) FROM Marks as m2 WHERE m2.studentnum = m.studentnum)
FROM
    Marks as m INNER JOIN
    Student as s
        ON s.SNum = m.studentnum

关于average - 在 ISQL 中不使用变量的情况下,将列中的值减去同一列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11381195/

相关文章:

python , Pandas : average every 2 rows together

mysql - 从 MYSQL 查询中计算列的平均值

database - Firebird 使用 isql 从一个数据库复制

sql - 3张表,2个数据库,1台服务器……如何加入? (SQL/信息混合)

SQL:选择varchar的平均值

mysql - 热门报告指标 MYSQL

linux - ISQL 命令结果为 : can't open lib 'odbcci.so' with unixODBC and Pervasive Client on Ubuntu Linux

sql-server - FreeTDS 可以工作,但 ODBC 无法连接

database - Firebird 第二个实例无法访问

hadoop - MapReduce - 如何计算相对值(平均值、前 k 等)?