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

Đếm theo ngày sớm nhất được tìm thấy từ một liên kết bên trong?

Bạn có thể sử dụng truy vấn sau:

SELECT CONCAT(EXTRACT(MONTH FROM startedPayingDate), '-', 
              EXTRACT(YEAR FROM startedPayingDate)) AS "Month", 
       COUNT(*) AS "Total AB Paying Customers"
FROM (       
   SELECT customer_id, MIN(created_at) AS startedPayingDate 
   FROM customerusermap AS cm
   WHERE NOT EXISTS (SELECT 1
                     FROM users AS u
                     WHERE cm.user_id = u.id)
   GROUP BY customer_id ) AS t
GROUP BY 1   

Tôi đã sử dụng NOT EXISTS để loại trừ các hồ sơ liên quan đến việc khách hàng 'tự trả tiền cho họ' (nếu đó thực sự là ý định của bạn).

Khi bạn nhận được MIN(created_at) ngày mỗi customer_id , thì bạn có thể dễ dàng đếm mỗi ngày trong một truy vấn bên ngoài.

Demo tại đây




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HQL - Kiểm tra xem một Mảng có chứa giá trị hay không

  2. Nhận dữ liệu 12 tháng qua từ Db với năm trong Postgres

  3. Giảm tham số postgresql.conf tại một thời điểm

  4. Làm mới các chế độ xem cụ thể hóa:Đồng tiền, hành vi giao dịch

  5. Tạo một ứng dụng nhiều người thuê bằng các lược đồ và Rails của PostgreSQL