sql >> Database teknologi >  >> RDS >> Mysql

MySQL SELECT-funktion til at summere aktuelle data

Dette kaldes kumulativ sum.

I Oracle og PostgreSQL , det beregnes ved hjælp af en vinduesfunktion:

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

Dog MySQL understøtter det ikke.

I MySQL , kan du beregne det ved hjælp af sessionsvariabler:

SET @s = 0;

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

eller på en ren sæt-baseret, men mindre effektiv måde:

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


  1. Django:Brug af brugerdefinerede rå SQL-indsættelser med executemany og MySQL

  2. MySQL-lagret procedure returnerer værdi

  3. 7 muligheder for at aktivere rør (||) som sammenkædningsoperatør i MariaDB

  4. Sådan udtrækkes dagen, måneden og året fra en dato i SQLite