sql >> Databáze >  >> RDS >> Mysql

MySQL běží celkem s COUNT

Aktualizovaná odpověď

Operační program požadoval přístup s jedním dotazem, aby nebylo nutné SET uživatelskou proměnnou odděleně od použití proměnné k výpočtu průběžného součtu:

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 inicializace" uživatelských proměnných je užitečná i pro simulaci dalších analytických funkcí. Tuto techniku ​​jsem se skutečně naučil z odpovědí jako je tato .

Původní odpověď

Je třeba zavést přiložený dotaz k tabelování @running_sum přes vaše COUNT(*)ed záznamy:

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;

Viz také tuto odpověď .



  1. Neplatný formát data a času:1292 Nesprávná hodnota data a času - Laravel 5.2

  2. Porovnávání řetězců s jedním, který má předtím prázdné mezery, zatímco druhý nikoli

  3. jak duplikovat mé výsledky SQL?

  4. Skrytí hesla ve formátu prostého textu pomocí příkazového řádku sqlplus