Jawaban yang Diperbarui
OP meminta pendekatan kueri tunggal, agar tidak harus MENGATUR variabel pengguna secara terpisah dari menggunakan variabel untuk menghitung total yang berjalan:
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;
"Inisialisasi sebaris" variabel pengguna juga berguna untuk mensimulasikan fungsi analitik lainnya. Memang saya mempelajari teknik ini dari jawaban seperti ini .
Jawaban Asli
Anda perlu memperkenalkan kueri terlampir untuk mentabulasi @running_sum
atas COUNT(*) catatan Anda:
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;
Lihat juga jawaban ini .