Erstellen Sie eine Spalte für die kumulative Summe in MySQL
P粉670838735
2023-08-22 11:26:08
<p>Ich habe eine Tabelle, die so aussieht:</p>
<pre class="brush:php;toolbar:false;">ID-Anzahl
1 100
2 50
3 10</pre>
<p>Ich möchte eine neue Spalte namens cumulative_sum hinzufügen, sodass die Tabelle so aussieht: </p>
<pre class="brush:php;toolbar:false;">id count cumulative_sum
1 100 100
2 50 150
3 10 160</pre>
<p>Gibt es eine MySQL-Update-Anweisung, mit der dies leicht erreicht werden kann? Was ist der beste Ansatz? </p>
使用相关查询:
使用MySQL变量:
注意:
JOIN (SELECT @running_total := 0) r
是一个交叉连接,允许在不需要单独的SET
命令的情况下声明变量。r
注意事项:
ORDER BY
非常重要,它确保顺序与原始问题匹配,并且对于更复杂的变量使用(例如:伪ROW_NUMBER/RANK功能,MySQL不支持)可能会有更大的影响如果性能是一个问题,你可以使用MySQL变量:
或者,你可以移除
cumulative_sum
列,并在每个查询中计算它:这样以一种连续的方式计算累积和 :)