過去12ヶ月間にわたってアクティブだったユーザーを取得するクエリを作成する方法を検討しています。 2017年に発行され、その後1か月で取引される。12か月間でグループ分けしているユーザーの月間取引ユーザー数 - Postgres
例:トランザクションを作った2017年12月については、
、そして何これはすべての人の割合として2016年12月にわたり取引 - 2017年12月
私がいる問題は、私もです|
顧客ID:ここでは、自社の製品や国
することにより、これらのユーザーグループに必要なのは、私が持っている行がありますtransaction_date | |製品購入|トランザクションID
私のようないくつかのメソッド試してみました:私は国と製品のグループに各顧客が必要として、私はサブクエリをやってみましたが、私は彼らが私のグループで動作するように取得することはできません
WITH transacting_dec_users AS (
SELECT
user_id AS transactor,
COUNT(*) AS transactions
FROM database
WHERE transaction_date >= '2017-12-01'
GROUP BY user_id),
dec_actives AS (
SELECT
user_id,
transactions,
COUNT(*) AS active_in_12_months,
product,
receive_country,
sender_country
FROM database t1
LEFT OUTER JOIN transacting_users t2 ON t2.transactor = t1.user_id
WHERE transaction_date >= '2016-12-01'
GROUP BY 1,2,4,5,6)
SELECT
SUM(CASE WHEN transactions IS NULL THEN 1 ELSE 0 END) AS actives_not_transact,
SUM(CASE WHEN transactions IS NOT NULL THEN 1 ELSE 0 END) AS transactor
FROM actives
を
私の理想的な結果は次のようになります。あなたの希望する結果の
サンプルデータと望ましい結果は、本当に役立つだろう - (?PostgresのPresodb)のデータベースまたは別の確固たるコミットメントと同じように –
確かに私はどちらか – MassiveOwl
上でクエリを実行することができるので、私はPostgresのとPrestoDBの両方を言いました私の理想的な結果の写真を追加しました。それは理にかなっていますか?だから、私は12月に取引したものだけを得ることはできません。それから、製品と国別にデータをグループ化しなければならないので、12ヶ月間のウィンドウで取引する人の割合として – MassiveOwl