ユーザーのスライディングウィンドウ統計を把握しようとしています。ユーザーとcreated_atやverified_atなどの列を持つテーブルがあります。毎月、登録したユーザーの数(created_atのdate_truncによる単純なグループ)を調べ、次にそれらのユーザーの数をスライディングウィンドウ内で確認した数(60日と呼びます)を調べたいと思います。
次のようなSQLクエリを実行したいと思います。
Month | Registered | Verified in 60 days
Jan 2009 | 1543 | 107
Feb 2009 | 2000 | 250
私はpostgresqlを使用しています。私はsum(case ...)を見始めましたが、どういうわけか私のケースをdate_truncに依存させることができるかどうかわかりません。
もちろん、これは機能しませんが、アイデアは次のとおりです。
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)