Jak powiedział @JagaSrik, istnieje potrzeba uzyskania większej ilości informacji o Twoich danych i tabelach, aby udzielić prawidłowej odpowiedzi. Jeśli jednak potrzebujesz zmienić tabelę w ten sposób:
name | date | id
-----------------------------------------
total Inscription | 2017-07-10 | 2
total Inscription | 2020-04-20 | 2
total Inscription | 2020-04-21 | 3
total Inscription | 2020-06-17 | 4
total Inscription | 2020-06-18 | 2
do czegoś takiego:
date | total
-----------------------------------------
2017-07-10 | 2
2020-04-20 | 4
2020-04-21 | 7
2020-06-17 | 11
2020-06-18 | 13
możesz użyć KURSORA .
W tym przykładzie:
DELIMITER $$
CREATE PROCEDURE `countIds`()
BEGIN
DECLARE finished INTEGER DEFAULT 0;
DECLARE total INTEGER DEFAULT 0;
DECLARE theCount INTEGER DEFAULT 0;
DECLARE theDate varchar(100) DEFAULT "";
DEClARE curCount
CURSOR FOR
SELECT `id`,`date` FROM table1;
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET finished = 1;
OPEN curCount;
getCount: LOOP
FETCH curCount INTO theCcount,theDate;
IF finished = 1 THEN
LEAVE getCount;
END IF;
SET total = total + theCount;
select theDate, total;
END LOOP getCount;
CLOSE curCount;
END$$
DELIMITER ;
Niemniej jednak KURSOR to sposób na pracę i mogą istnieć bardziej skuteczne metody.