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

用聚合查询在mysql的现有表中添加一个新列

赏阳嘉
2023-03-14

这两个表是:

> < li>

学生(学生标识,学生姓名);

score (student_id,subject,score1,score2)。

我想在student表中添加一个新列来查找每个学生所有科目的平均分。我该怎么做呢?

共有1个答案

姜旭
2023-03-14

在学生表中添加你的分数列,然后你可以用平均分数更新学生表,比如

UPDATE 
  student s 
  JOIN 
    (SELECT 
      student_id,
      AVG(score1 + score2) score 
    FROM
      score 
    GROUP BY student_id) sc 
  ON s.`student_id` = sc.student_id 
SET s.`score` = sc.score 
 类似资料:
  • 我有一个如下的数据框。我需要在现有列的基础上创建一个新列。 输出数据帧看起来像这样 我用来寻找col3的逻辑是如果col1计数 我熟悉如何在sql中实现这一点。但很难找到数据帧DSL的解决方案。任何帮助都将不胜感激。谢谢

  • 问题内容: 我正在创建一个SQL查询,该查询将基于两个聚合函数的值从表中提取记录。这些聚合函数从同一张表中提取数据,但过滤条件不同。我遇到的问题是,与仅包含一个SUM函数的情况相比,SUM的结果要大得多。我知道我可以使用临时表创建此查询,但是我只是想知道是否有一个仅需要单个查询的优雅解决方案。 我创建了一个简化版本来演示该问题。表结构如下: 这是查询: 任何见识将不胜感激。 问题答案: 编辑: 没

  • 问题内容: 我有一个XYZ模型,我需要获取给定查询集的字段a,b和表达式x / y的最大值。 它适用于田野。就像是: 但是,我找不到一种针对表达式的方法。尝试类似的东西: 给出一个错误: 尝试类似的东西: 给出一个错误: 甚至像: 同样不起作用,并给出与上述相同的错误: 我发现可以做到的一个技巧是: 之所以有效,是因为它会生成正确的SQL,但令人困惑,因为我确实在z属性处获得了正确的值,但没有获得

  • 问题内容: 我有一个非常庞大的查询,其最简单的形式如下所示: 我需要再添加一个条件,该条件可以让我获得每个代表的应用程序日期不为空的用户数(例如:rep 1具有3个用户的应用程序日期已填写),并将其分配给类别(由于3个用户,rep是某个状态类别)。看起来像这样: 但是,如果我只是将其添加到select语句中,则所有代表将变为status1,因为sum()是在所有使用申请日期的顾问程序上完成的: 您

  • >[danger] 注意!!! 使用聚合功能时,必须给它一个别名,以便能够从模型中访问它 > 聚合函数的计算,都是排除了 null 值,所以COUNT( id ) 一般推荐用非空的主键来计算 COUNT 计算数量 const { Sequelize } = app; // 查询班级总人数,按照姓名聚合 const ret = await Student.findAll({ attribut

  • 在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数、所有用户的最大积分、用户的平均成绩等等,ThinkPHP为这些统计操作提供了一系列的内置方法,包括: 方法 说明 count 统计数量,参数是要统计的字段名(可选) max 获取最大值,参数是要统计的字段名(必须) min 获取最小值,参数是要统计的字段名(必须) avg 获取平均值,参数是要统计的字段名(必须) sum