sql >> Base de Datos >  >> RDS >> Mysql

Total acumulado de MySQL con COUNT

Respuesta actualizada

El OP solicitó un enfoque de consulta única, para no tener que ESTABLECER una variable de usuario por separado del uso de la variable para calcular el total acumulado:

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;

La "inicialización en línea" de las variables de usuario también es útil para simular otras funciones analíticas. De hecho, aprendí esta técnica de respuestas como esta .

Respuesta original

Debe introducir una consulta adjunta para tabular el @running_sum sobre sus COUNT(*)ed registros:

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;

Ver también esta respuesta .