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

Total de execução do MySQL com COUNT

Resposta atualizada


O OP pediu uma abordagem de consulta única, para não precisar SET uma variável de usuário separadamente de usar a variável para calcular o total em execução:
SELECT d.date,
       @running_sum:[email protected]_sum + d.count AS running
  FROM (  SELECT date, COUNT(*) AS `count`
            FROM table1
           WHERE date > '2011-09-29' AND applicationid = '123'
        GROUP BY date
        ORDER BY date ) d
  JOIN (SELECT @running_sum := 0 AS dummy) dummy;

A "inicialização em linha" de variáveis ​​do usuário também é útil para simular outras funções analíticas. Na verdade, aprendi essa técnica com respostas como esta .

Resposta Original


Você precisa introduzir uma consulta delimitadora para tabular o @running_sum sobre seus registros COUNT(*)ed:
SET @running_sum=0;
SELECT d.date,
       @running_sum:[email protected]_sum + d.count AS running
  FROM (  SELECT date, COUNT(*) AS `count`
            FROM table1
           WHERE date > '2011-09-29' AND applicationid = '123'
        GROUP BY date
        ORDER BY date ) d;

Veja também esta resposta .