如何根据 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';
如果这是一个基本问题,我深表歉意。
我有这样的 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';