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

Beregn en løbende total i MySQL

Måske en enklere løsning for dig og forhindrer, at databasen skal udføre et væld af forespørgsler. Dette udfører kun én forespørgsel og laver derefter lidt matematik på resultaterne i et enkelt gennemløb.

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

Dette vil give dig en ekstra RT (løbende total) kolonne. Gå ikke glip af SET-sætningen øverst for at initialisere den kørende totalvariabel først, ellers får du bare en kolonne med NULL-værdier.



  1. Oracle Database Developer Choice Awards

  2. MySql ser ydeevne

  3. MySql-fejl 150 - Fremmednøgler

  4. Hvordan omdøber jeg hurtigt en MySQL-database (ændrer skemanavn)?