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

Nhóm và đếm các sự kiện trên mỗi khoảng thời gian, cộng với tổng số lần chạy

Sử dụng date_trunc() để cắt ngắn dấu thời gian thành tháng và bao gồm cả năm và tháng trong một cột duy nhất. Bạn có thể sử dụng to_char() để định dạng theo bất kỳ cách nào bạn muốn.

Để có được số lần chạy mà bạn đề cập trong câu hỏi bổ sung của mình, hãy thêm chức năng cửa sổ :

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 cho Psotgres 9.6
db <> fiddle tại đây cho Postgres 12

Các chức năng của cửa sổ được thực thi sau các hàm tổng hợp, vì vậy chúng tôi có thể chạy một hàm cửa sổ trên một hàm tổng hợp trong cùng một cấp truy vấn. Có liên quan:

Điều cần thiết là sử dụng cùng một biểu thức cơ bản trong hàm window và trong 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. Rails Activerecord Relation:sử dụng truy vấn con làm bảng cho câu lệnh SQL select

  2. PostgreSQL 11 - Thủ tục

  3. Ngoại lệ Postgres:Không có kết quả nào được trả về bởi truy vấn.

  4. PostreSQL 10 không khởi động được trên Ubuntu 18.04 chạy trên Hệ thống con của Windows dành cho Linux

  5. Cách liệt kê các chỉ mục được tạo cho bảng trong postgres