如何根据 MYSQL 中其他记录的相同列值的总和来更新列的值?

How to update value of a column based on sum of same column values of other records in MYSQL?

如果这是一个基本问题,我深表歉意。

我有这样的 table 结果 :

我有 100 多个这样的 ID 的记录。

我想用属于相同 id[=34= 的 'Maths' 和 'Physics' 的标记总和来更新类型为 'ALL' 的所有记录] 和 日期.

想要的结果:

我正在考虑使用 UPDATE 子句,但不确定如何合理地构建它。

感谢任何帮助。谢谢。

请看一下这个url:mySql with rollup。 它使用 rollup 修饰符,您可以使用它使总和按特定行分组。看看给出的例子,有空再问。

Mysql 多 table 更新手册页 - https://dev.mysql.com/doc/refman/8.0/en/update.html

例如

drop table if exists t;

CREATE TABLE T(ID INT,SUBJECT VARCHAR(10), MARK INT);

INSERT INTO T VALUES
(1,'ALL',NULL),(1,'AAA',1),(1,'BBB',2),
(2,'ALL',NULL),(2,'AAA',10),(2,'BBB',20);

UPDATE T 
JOIN
 (SELECT ID,SUM(MARK) MARK FROM T WHERE SUBJECT <> 'ALL' GROUP BY ID) S ON S.ID = T.ID
SET T.MARK = S.MARK
WHERE SUBJECT = 'ALL';