sql >> Databasteknik >  >> RDS >> Mysql

MySQL löpande total med COUNT

Uppdaterat svar

OP bad om en enkelfråga-metod, för att inte behöva sätta en användarvariabel separat från att använda variabeln för att beräkna den löpande summan:

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;

"Inline-initiering" av användarvariabler är också användbar för att simulera andra analytiska funktioner. Jag lärde mig den här tekniken från svar som den här .

Originalt svar

Du måste införa en omslutande fråga för att tabulera @running_sum över dina COUNT(*)ed poster:

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;

Se även det här svaret .



  1. infoga fråga med ajax utan att ladda om hela sidan

  2. stöd för flera databaser för samma JPA-klasser

  3. Visar data från flera frågor i ett enda cirkeldiagram med cfchart-taggen

  4. ORA-28001:lösenordet har gått ut kan inte fixas