sql >> Databasteknik >  >> RDS >> Mysql

Beräkna en löpande summa i MySQL

Kanske en enklare lösning för dig och förhindrar att databasen behöver göra massor av frågor. Detta exekverar bara en fråga och räknar sedan ut resultaten i ett enda pass.

SET @runtot:=0;
SELECT
   q1.d,
   q1.c,
   (@runtot := @runtot + q1.c) AS rt
FROM
   (SELECT
       DAYOFYEAR(`date`) AS d,
       COUNT(*) AS c
    FROM  `orders`
    WHERE  `hasPaid` > 0
    GROUP  BY d
    ORDER  BY d) AS q1

Detta ger dig en extra RT-kolumn (running total). Missa inte SET-satsen högst upp för att initialisera den löpande totalvariabeln först, annars får du bara en kolumn med NULL-värden.



  1. Avbryter inaktiva mysql-anslutningar

  2. 4 sätt att få en lista över scheman i SQL Server Agent (T-SQL)

  3. MySQL-grupp efter och beställ efter

  4. Guide till designdatabas för lagerhanteringssystem i MySQL