8
votes

MySQL Sélectionnez la colonne "accumulée"

Je ne sais pas quoi appeler ceci en plus d'une colonne "accumulée".

J'ai une table mysql avec une colonne qui ressemble à p> xxx pré> je veux Pour faire une requête afin que je reçois cette colonne avec une autre colonne qui est la somme de toutes les lignes de cette colonne jusqu'à présent. En d'autres termes, le Select donnerait P>

+---+----+
|val| sum|
+---+----+
| 1 |  1 |
| 4 |  5 |
| 6 | 11 |
| 3 | 14 |
| 2 | 16 |
| 5 | 21 |
+---+----+


0 commentaires

4 Réponses :


0
votes

Je ne sais pas comment \ Si vous voulez le faire avec une seule sélection, mais je pense que vous pouvez sélectionner les éléments, alors un curseur 's'accumule' sur la deuxième passe.


0 commentaires

9
votes

Qu'en est-il de

set @running_sum=0
select val, @running_sum:=@running_sum + val from your_table;


0 commentaires

0
votes

J'utiliserais un curseur : xxx


0 commentaires

5
votes

Une autre variation (une ligne unique) peut être xxx

si vous ne voulez pas utiliser de variables, vous pouvez utiliser une sélection imbriquée Notez cependant que cette requête a une complexité plus élevée (performance inférieure) et vous devez définir et ancrer pour le tri, dans mon exemple que j'ai utilisé _rowid, mais tout autre champ peut faire le travail xxx


0 commentaires