Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tổng tích lũy MySQL được nhóm theo ngày

Câu trả lời mới

Lúc đầu, tôi không hiểu bạn đang cố gắng chạy tổng. Đây là cách nó sẽ trông như thế nào:

SET @runningTotal = 0;
SELECT 
    e_date,
    num_interactions,
    @runningTotal := @runningTotal + totals.num_interactions AS runningTotal
FROM
(SELECT 
    DATE(eDate) AS e_date,
    COUNT(*) AS num_interactions
FROM example AS e
GROUP BY DATE(e.Date)) totals
ORDER BY e_date;

Câu trả lời ban đầu

Bạn có thể nhận được các bản sao vì sự tham gia của bạn. Có thể e1 có nhiều hơn một kết quả phù hợp cho một số hàng làm tăng số lượng của bạn. Điều đó hoặc so sánh trong kết hợp của bạn cũng là so sánh từng giây, không phải là điều bạn mong đợi.

Nhưng dù sao, thay vì cắt trường datetime thành ngày và tháng, chỉ cần tách thời gian khỏi nó. Đây là cách bạn làm điều đó.

SELECT
   DATE(e.Date) AS e_date,
   count(e.ID) AS num_interactions
FROM example AS e
JOIN example e1 ON DATE(e1.Date) <= DATE(e.Date)
GROUP BY DATE(e.Date);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn các hàng cho đến khi tổng số tiền được đáp ứng trong một cột (mysql)

  2. Làm cách nào để tạo cơ sở dữ liệu MySQL chạy hoàn toàn trong bộ nhớ?

  3. Có bất kỳ cạm bẫy / điều gì bạn cần biết khi chuyển từ MyISAM sang InnoDB không

  4. Làm thế nào để sắp xếp kết quả MySQL với các ký tự đầu tiên, ký hiệu sau cùng?

  5. Điều kiện cuộc đua MySQL