Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Calcular um total em execução no MySQL


Talvez uma solução mais simples para você e evite que o banco de dados tenha que fazer muitas consultas. Isso executa apenas uma consulta e faz um pouco de matemática nos resultados em uma única passagem.
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

Isso lhe dará uma coluna RT adicional (total em execução). Não perca a instrução SET na parte superior para inicializar a variável total em execução primeiro ou você obterá apenas uma coluna de valores NULL.