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

Totale parziale MySQL con COUNT

Risposta aggiornata

L'OP ha richiesto un approccio a query singola, in modo da non dover SET una variabile utente separatamente dall'utilizzo della variabile per calcolare il totale parziale:

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;

L'"inizializzazione in linea" delle variabili utente è utile anche per simulare altre funzioni analitiche. In effetti ho imparato questa tecnica dalle risposte come questa .

Risposta originale

Devi introdurre una query di inclusione per tabulare il @running_sum oltre i tuoi COUNT(*) record registrati:

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;

Vedi anche questa risposta .