计算行之间的差异 MySQL
Calculating difference between rows MySQL
我有一个 table 这样的:
+----------+-----+--------+----+---------+-----+--------+
| Week | #X | Diff_X | #Y | Diff_Y | #Z | Diff_Z |
+----------+-----+--------+----+---------+-----+--------+
| 22 | 25 | Null | 13 | NULL | 0 | NULL |
| 23 | 25 | Null | 18 | NULL | 12 | NULL |
| 24 | 39 | Null | 15 | NULL | 16 | NULL |
+----------+-----+--------+----+---------+-----+--------+
这每周更新一次,所以每周 1 行。
我将如何着手计算每周之间每个值之间的差异?并将它们放在指定的列中。
所以想要的结果应该是这样的:
+----------+-----+--------+----+---------+-----+--------+
| Week | #X | Diff_X | #Y | Diff_Y | #Z | Diff_Z |
+----------+-----+--------+----+---------+-----+--------+
| 22 | 25 | 0 | 13 | 0 | 2 | 0 |
| 23 | 25 | 0 | 18 | 5 | 12 | 10 |
| 24 | 39 | 14 | 15 | -3 | 16 | 4 |
+----------+-----+--------+----+---------+-----+--------+
我完全不知道该怎么做,所以非常感谢任何形式的帮助!
UPDATE mytable t1
INNER JOIN mytable t2 ON t1.Week + 1 = t2.Week
SET t2.`Diff_X` = t2.`#X` - t1.`#X`,
t2.`Diff_Y` = t2.`#Y` - t1.`#Y`,
t2.`Diff_Z` = t2.`#Z` - t1.`#Z`
我有一个 table 这样的:
+----------+-----+--------+----+---------+-----+--------+
| Week | #X | Diff_X | #Y | Diff_Y | #Z | Diff_Z |
+----------+-----+--------+----+---------+-----+--------+
| 22 | 25 | Null | 13 | NULL | 0 | NULL |
| 23 | 25 | Null | 18 | NULL | 12 | NULL |
| 24 | 39 | Null | 15 | NULL | 16 | NULL |
+----------+-----+--------+----+---------+-----+--------+
这每周更新一次,所以每周 1 行。
我将如何着手计算每周之间每个值之间的差异?并将它们放在指定的列中。
所以想要的结果应该是这样的:
+----------+-----+--------+----+---------+-----+--------+
| Week | #X | Diff_X | #Y | Diff_Y | #Z | Diff_Z |
+----------+-----+--------+----+---------+-----+--------+
| 22 | 25 | 0 | 13 | 0 | 2 | 0 |
| 23 | 25 | 0 | 18 | 5 | 12 | 10 |
| 24 | 39 | 14 | 15 | -3 | 16 | 4 |
+----------+-----+--------+----+---------+-----+--------+
我完全不知道该怎么做,所以非常感谢任何形式的帮助!
UPDATE mytable t1
INNER JOIN mytable t2 ON t1.Week + 1 = t2.Week
SET t2.`Diff_X` = t2.`#X` - t1.`#X`,
t2.`Diff_Y` = t2.`#Y` - t1.`#Y`,
t2.`Diff_Z` = t2.`#Z` - t1.`#Z`