Mungkin solusi yang lebih sederhana untuk Anda dan mencegah database harus melakukan banyak pertanyaan. Ini hanya mengeksekusi satu kueri, lalu menghitung sedikit hasil dalam satu lintasan.
SET @runtot:=0;
SELECT
q1.d,
q1.c,
(@runtot := @runtot + q1.c) AS rt
FROM
(SELECT
DAYOFYEAR(`date`) AS d,
COUNT(*) AS c
FROM `orders`
WHERE `hasPaid` > 0
GROUP BY d
ORDER BY d) AS q1
Ini akan memberi Anda kolom RT (total berjalan) tambahan. Jangan lewatkan pernyataan SET di atas untuk menginisialisasi variabel total yang berjalan terlebih dahulu atau Anda hanya akan mendapatkan kolom nilai NULL.