sql >> データベース >  >> RDS >> PostgreSQL

12か月のローリングベースで顧客を反復処理し、顧客が過去12か月間に注文していないかどうかを確認します

    これは、WHEREを使用した前のクエリです。 条項:

    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';
    

    こちら はdb<>フィドルです。




    1. SQLServerカーソルで複数の値を取得する

    2. MySQL:ストアド関数を使用して文字列内の単語を並べ替える方法は?

    3. 1つのテーブルに複数の主キーが存在できますか?

    4. PostgreSQLのbyteaフィールドに(dbase内で)サイズ制限を設定できますか?