sql >> Database teknologi >  >> RDS >> Mysql

MySQL kører i alt med COUNT

Opdateret svar

OP bad om en enkelt-forespørgsel tilgang, for ikke at skulle indstille en brugervariabel separat fra at bruge variablen til at beregne den løbende total:

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 initialisering" af brugervariabler er også nyttig til at simulere andre analytiske funktioner. Jeg har faktisk lært denne teknik fra svar som denne .

Oprindeligt svar

Du skal indføre en omsluttende forespørgsel for at tabulere @running_sum over dine COUNT(*)ed records:

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 også dette svar .



  1. Mineplaner:Ikke kun for planens cache

  2. PHP's PDO ignorerer indstillingen ATTR_TIMEOUT for MySQL, når serveren ikke kan nås

  3. designdatabase relateret til tidsattribut

  4. Bedste fremgangsmåder for DateTime-serialisering i .NET 3.5