PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kelompokkan dan hitung acara per interval waktu, ditambah total lari

Gunakan date_trunc() untuk memotong stempel waktu ke bulan dan mencakup tahun dan bulan dalam satu kolom. Anda dapat menggunakan to_char() untuk memformatnya sesuka Anda.

Untuk mendapatkan jumlah lari yang Anda sebutkan dalam pertanyaan tambahan Anda, tambahkan fungsi jendela :

SELECT to_char(date_trunc('month', period_start), 'Mon YYYY') AS month
     , count(*) AS month_ct
     , sum(count(*)) OVER (ORDER BY date_trunc('month', period_start)) AS running_ct
FROM   activity_log
WHERE  action = 'create_entry'
GROUP  BY date_trunc('month', period_start);

sqlfiddle untuk Psotgres 9.6
db<>fiddle di sini untuk Postgres 12

Fungsi jendela dijalankan setelah fungsi agregat, sehingga kita dapat menjalankan fungsi jendela di atas agregat di tingkat kueri yang sama. Terkait:

Sangat penting untuk menggunakan ekspresi dasar yang sama di fungsi jendela dan di GROUP BY :date_trunc('month', period_start) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Tan() Bekerja di PostgreSQL

  2. Bagaimana cara menggunakan subquery di SQLAlchemy untuk menghasilkan rata-rata bergerak?

  3. batasan unik pada tipe data Bytea di Postgresql

  4. Pemicu DB Postgres memanggil Fungsi Java

  5. Hibernate 4 dan Postgres :Bagaimana cara membuat urutan per tabel?