Créer une colonne pour la somme cumulée dans MySQL
P粉670838735
2023-08-22 11:26:08
<p>J'ai un tableau qui ressemble à ceci :</p>
<pre class="brush:php;toolbar:false;">nombre d'identifiants
1100
2 50
310≪/pré>
<p>Je souhaite ajouter une nouvelle colonne appelée cumulative_sum, donc le tableau ressemble à ceci : </p>
<pre class="brush:php;toolbar:false;">id count cumulative_sum
1 100 100
2 50 150
310 160≪/pré>
<p>Existe-t-il une instruction de mise à jour MySQL permettant d'y parvenir facilement ? Quelle est la meilleure approche ? </p>
Utilisez des requêtes associées :
Utilisez des variables MySQL :
Remarque :
JOIN (SELECT @running_total := 0) r
是一个交叉连接,允许在不需要单独的SET
Déclarez les variables dans le contexte des commandes.r
Remarques :
ORDER BY
Très important, cela garantit que l'ordre correspond à la question d'origine, et peut avoir un impact plus important pour une utilisation de variables plus complexe (par exemple : fonctionnalité pseudo ROW_NUMBER/RANK, non prise en charge par MySQL)Si les performances posent problème, vous pouvez utiliser des variables MySQL :
Vous pouvez également supprimer la colonne
cumulative_sum
et la calculer dans chaque requête :Cela calcule la somme cumulée de manière continue :)