Mysql
 sql >> Base de données >  >> RDS >> Mysql

Fonction MySQL SELECT pour additionner les données actuelles

C'est ce qu'on appelle la somme cumulée.

Dans Oracle et PostgreSQL , il est calculé à l'aide d'une fonction fenêtre :

SELECT  id, val, SUM() OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
FROM    mytable

Cependant, MySQL ne le supporte pas.

En MySQL , vous pouvez le calculer à l'aide de variables de session :

SET @s = 0;

SELECT  id, val, @s := @s + val
FROM    mytable
ORDER BY
        id
;

ou de manière purement basée sur les ensembles mais moins efficace :

SELECT  t1.id, t1.val, SUM(t2.val)
FROM    mytable t1
JOIN    mytable t2
ON      t2.id <= t1.id
GROUP BY
        t1.id
;