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

MySQL tổng hợp theo tháng với tổng số đang chạy

Thật không may, MySQL không cung cấp các chức năng phân tích, giống như Oracle và SQL Server.

Một cách để có được "tổng số đang chạy" là sử dụng một biến người dùng, giống như sau:

  SELECT t.Date
       , t.NewUsers
       , @rt := @rt + t.NewUsers AS `Running Total`
    FROM (SELECT @rt := 0) i
    JOIN (
           SELECT DATE_FORMAT(created,'%Y%m%d') AS `Date`
                , COUNT(item_id) as `NewUsers`
             FROM AP_user
            WHERE YEAR(created) > 2011
              AND user_groups = '63655'
              AND user_active = 1
              AND userID NOT IN $excludedUsers
            GROUP BY DATE_FORMAT(created,'%Y-%m')
            ORDER BY DATE_FORMAT(created,'%Y-%m') ASC
         ) t

LƯU Ý:Hành vi của các biến bộ nhớ như được sử dụng ở trên không được đảm bảo trong ngữ cảnh này. Nhưng nếu chúng ta cẩn thận với truy vấn, chúng ta có thể nhận được kết quả có thể đoán trước, có thể lặp lại trong các câu lệnh SELECT. Hành vi của các biến bộ nhớ có thể thay đổi trong bản phát hành trong tương lai, khiến phương pháp này không thể hoạt động được.

LƯU Ý:Về cơ bản, tôi đã gói truy vấn của bạn trong dấu ngoặc đơn và đặt cho nó một bí danh như một dạng xem nội tuyến (cái mà MySQL gọi là "bảng dẫn xuất"). Tôi đã thực hiện một vài thay đổi đối với truy vấn của bạn, GROUP BY của bạn có khả năng nhóm tháng 1 năm 2012 cùng với tháng 1 từ năm 2013, tôi đã thay đổi điều đó. Tôi cũng đã thêm điều khoản ORDER BY.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiển thị (Danh sách) Cơ sở dữ liệu MySQL trên Linux qua Dòng lệnh

  2. JPA hoặc Hibernate để tạo giá trị cột (không phải khóa chính), không bắt đầu từ 1

  3. Tìm kiếm trong cột JSON bằng cách sử dụng tài hùng biện của Laravel

  4. App Engine và MySQL

  5. MySql 5.6 tương đương với `MySQLInstanceConfig.exe` để chỉnh sửa tệp cấu hình ở đâu?