おそらくあなたにとってより簡単な解決策であり、データベースが大量のクエリを実行する必要がなくなります。これにより、クエリが1つだけ実行され、1回のパスで結果に対して少し計算が行われます。
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
これにより、追加のRT(現在の合計)列が表示されます。最初に現在の合計変数を初期化するために上部のSETステートメントを見逃さないでください。そうしないと、NULL値の列が取得されます。