Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL agregat berdasarkan bulan dengan total berjalan

Sayangnya, MySQL tidak menyediakan fungsi analitik, seperti Oracle dan SQL Server.

Salah satu cara untuk mendapatkan "total berjalan" adalah dengan menggunakan variabel pengguna, seperti ini:

  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

CATATAN:Perilaku variabel memori seperti yang digunakan di atas tidak dijamin dalam konteks ini. Tetapi jika kita berhati-hati dengan kueri, kita bisa mendapatkan hasil yang dapat diprediksi dan berulang dalam pernyataan SELECT. Perilaku variabel memori dapat berubah di rilis mendatang, sehingga pendekatan ini tidak dapat dijalankan.

CATATAN:Saya pada dasarnya membungkus kueri Anda dalam tanda kurung, dan memberikannya alias sebagai tampilan sebaris (apa yang disebut MySQL sebagai "tabel turunan"). Saya membuat beberapa perubahan pada kueri Anda, GROUP BY Anda berpotensi untuk mengelompokkan Januari 2012 bersama dengan Januari dari 2013, saya mengubahnya. Saya juga menambahkan klausa 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. Memproses hasil MySQL di bash

  2. Cara mengotomatiskan pengumpulan data dan tidak membeku dalam 10%

  3. Cara menggabungkan dua kolom dalam sql dan menampilkannya menjadi catatan terpisah

  4. Cara:mencocokkan (mencari ruang) melawan (bergabung dengan kolom dari tabel lain)

  5. Terhubung ke database MySQL ONLINE menggunakan DSN ODBC