Câu trả lời được cập nhật
OP đã yêu cầu một cách tiếp cận truy vấn duy nhất, để không phải ĐẶT biến người dùng một cách riêng biệt với việc sử dụng biến đó để tính tổng số đang chạy:
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;
"Khởi tạo nội tuyến" của các biến người dùng cũng hữu ích cho việc mô phỏng các hàm phân tích khác. Thật vậy, tôi đã học được kỹ thuật này từ các câu trả lời như thế này .
Câu trả lời ban đầu
Bạn cần giới thiệu một truy vấn kèm theo để lập bảng cho @running_sum
trên COUNT (*) bản ghi ed của bạn:
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;
Xem thêm câu trả lời này .