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

Lặp lại thông qua các khách hàng theo chu kỳ 12 tháng và kiểm tra xem khách hàng có đặt hàng trong 12 tháng qua không

Đây là truy vấn trước với WHERE mệnh đề:

SELECT gs.month, c.customer, MAX(c.order_date + interval '12 month')::date as churn_date
FROM customers c CROSS JOIN
     GENERATE_SERIES('2021-03-01'::date, '2021-04-01'::date, interval '1 month') gs(month)
WHERE c.order_date < gs.month + interval '1 month'
GROUP BY gs.month, c.customer
HAVING DATE_TRUNC('month', MAX(c.order_date)) = DATE_TRUNC('month', gs.month) - interval '12 month';

Tại đây là một db <> fiddle.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LOWER LIKE so với iLIKE

  2. Làm thế nào để làm mới tất cả các chế độ xem cụ thể hóa trong Postgresql 9.3 cùng một lúc?

  3. Làm cách nào để trả về '0' từ truy vấn trong pgsql, nếu hàng không tồn tại?

  4. Trình điều khiển JDBC postgresql không được tìm thấy trong dự án android

  5. Tính toán khoảng cách giữa vị trí gps và giá trị địa lý postgis bằng cách sử dụng một hàm?