Tôi đang cố gắng tìm ra một số thống kê cửa sổ trượt trên người dùng của mình. Tôi có một bảng với một người dùng, và các cột như created_at và verified_at. Đối với mỗi tháng, tôi muốn tìm hiểu có bao nhiêu người dùng đã đăng ký (một nhóm đơn giản bởi date_trunc của created_at), và sau đó của những người đó, bao nhiêu xác minh trong cửa sổ trượt của tôi (gọi là 60 ngày).Truy vấn SQL để tổng hợp có điều kiện dựa trên cửa sổ ngày di chuyển
Tôi muốn làm một truy vấn SQL mà mang lại cho tôi một cái gì đó như:
Month | Registered | Verified in 60 days
Jan 2009 | 1543 | 107
Feb 2009 | 2000 | 250
Tôi đang sử dụng postgresql. Tôi bắt đầu xem xét tổng (trường hợp ...), nhưng tôi không biết liệu tôi có thể khiến trường hợp của mình phụ thuộc vào date_trunc bằng cách nào đó không.
này không hoạt động, tất nhiên, nhưng đây là ý tưởng:
SELECT DATE_TRUNC('month', created_at) as month,
COUNT(*) as registered,
SUM(CASE WHEN verified_at < month+60 THEN 1 ELSE 0 END) as verified
FROM users
GROUP BY DATE_TRUNC('month', created_at)
Phiên bản nào của PostgreSQL nào bạn sử dụng? –
Tôi đang sử dụng 8.3.5 – teich