Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL кумулативна сума, групирана по дата

Нов отговор

Отначало не разбрах, че се опитваш да направиш общ сбор. Ето как би изглеждало това:

SET @runningTotal = 0;
SELECT 
    e_date,
    num_interactions,
    @runningTotal := @runningTotal + totals.num_interactions AS runningTotal
FROM
(SELECT 
    DATE(eDate) AS e_date,
    COUNT(*) AS num_interactions
FROM example AS e
GROUP BY DATE(e.Date)) totals
ORDER BY e_date;

Оригинален отговор

Може да получавате дубликати поради присъединяването си. Може би e1 има повече от едно съвпадение за някои редове, което увеличава броя ви. Или това, или сравнението във вашето присъединяване също сравнява секундите, което не е това, което очаквате.

Както и да е, вместо да нарязвате полето за дата и час на дни и месеци, просто отделете времето от него. Ето как да направите това.

SELECT
   DATE(e.Date) AS e_date,
   count(e.ID) AS num_interactions
FROM example AS e
JOIN example e1 ON DATE(e1.Date) <= DATE(e.Date)
GROUP BY DATE(e.Date);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP - MYSQL - тестов сървър на база данни

  2. Не мога да намеря входна стойност тип=изображение в $_POST

  3. Как да съхранявате датата на раждане и възрастта, така че възрастта да може да се актуализира ежедневно в PHP/MySQL?

  4. Възможно ли е PHP MYSQL заявката да игнорира празната променлива в клаузата WHERE?

  5. Таблица само за четене в mysql