当前位置: 首页 > 知识库问答 >
问题:

通过同一列的平均值减去列中的值,而不在 ISQL 中使用变量

晏沈义
2023-03-14

我有2张桌子:分数(学生人数,分数)学生(学生人数,名字)

如果我做了

从Marks中选择SName, mark-avg(标记)在SNum上加入学生=学生号

那么我只返回1行。

有没有办法返回所有学生姓名列表以及学生分数和平均值(学生分数-平均值)的差异,而不给平均值分配变量

共有2个答案

洪捷
2023-03-14

试试这个:

Select s.sname, (m.mark - temp.avg)
From marks m
Inner join (select studentnum, avg(mark) as avg from marks group by studentnum) temp 
On temp.studentnum = m.studentnum
Inner Join students s
On s.snum = m.studentnum
终育
2023-03-14

您希望混合聚合值和非聚合值。这使用子查询,但根据您的服务器可能还有其他选项。

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
 类似资料:
  • 问题内容: 我正在尝试提出一个将更新的MySQL查询…我可以做这样的事情吗? 问题答案: 通过将单引号放在“点-5”周围,可以将该表达式转换为纯文本字符串。不用引号就可以使MySQL看到您正在引用一个字段(点),并从其当前值中减去5。

  • 问题内容: 我想使用查询显示来自不同行的两个值。 这是表结构: 我想从日期2014-11-07减去日期2014-11-08。 输出应该像 问题答案: 您可以使用联接获取行,然后减去值:

  • 问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用:

  • 我不能得到熊猫的平均值或平均值。有一个数据框。下面我尝试的东西都没有给我列的平均值 以下内容返回多个值,而不是一个值: 这也是:

  • 问题内容: 我有一个这样的数据框: 如下所示,数据集不一定每天都有观察值: 我想添加一个新列,该列显示至少n天中每个用户过去n天(在这种情况下,n = 2)的平均值,否则它将有价值。例如,在John上得到一个,因为他没有和的数据。因此结果将是这样的: 在阅读了论坛中的几篇文章之后,我似乎应该结合使用和自定义,但是我还不太清楚该怎么做。 问题答案: 我认为您可以使用第一个convert列 ,然后通过

  • 我想使用dplyr::mutate计算一些列的平均值。 我想包含来计算平均值的列只有BL1到BL9,所以我这样做了。 这行不通。我注意到如果我一个接一个的列,它会工作 我怀疑这是因为我给出的是字符串而不是“列”。 有人能解释这种行为吗?对此最好的解决办法是什么?