sql >> Database >  >> RDS >> Mysql

Bereken een lopend totaal in MySQL

Wellicht een eenvoudigere oplossing voor u en voorkomt dat de database een hoop queries moet doen. Dit voert slechts één query uit en doet vervolgens een beetje wiskunde op de resultaten in één keer.

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

Dit geeft je een extra RT-kolom (lopend totaal). Mis de SET-instructie bovenaan niet om de lopende totale variabele eerst te initialiseren, anders krijgt u gewoon een kolom met NULL-waarden.



  1. Wanneer autovacuüm niet stofzuigt

  2. Kan ik een transactie terugdraaien die ik al heb gepleegd? (data verlies)

  3. Eenvoudige CRUD-bewerking met PDO-databaseverbinding

  4. Maximum aantal tekens in labels (tabelnamen, kolommen enz.)