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)
.