現在、クライアントの 1 人のために統計プログラムを作成していますが、コンバージョン率を計算する方法がわかりません。
テーブルは次のようになります。
User_id order_id plan_id
12 12 16
12 13 2
12 14 2
14 15 5
14 16 16
15 17 16
オーダー ID16
は試用で、残りは支払われます。したがって、ユーザー 15 にはトライアウトしかないことがわかります。そのため、彼は無料を有料に変換しませんでした。
ユーザー 12 と 14 は両方とも試用 (plan_id=16) と有料プラン (plan_id<>16) を持っているため、無料から有料に変更されました。
だから私はコンバージョン率を計算するための方向ポインタを探しています。次の方向でクエリ(または必要なものを出力する金額)を探しています。
Converted Notconverted
1200 1800
これはユーザー向けです。試してみたアカウントに何人のユーザーが支払いましたか。
このクエリがありました。しかし、明らかにより多くの行を返すため、ユーザーでグループ化できないようです。
SELECT (SELECT COUNT(*) AS TotalOrders FROM orders where (plan_id<>17) GROUP BY user_id) AS SuccessCount, (SELECT COUNT(*) AS TotalFreeAccounts FROM orders where (plan_id=16) GROUP BY user_id) AS TrialCount
編集:ほとんどあります(:
これまでのところ、次のクエリに出くわしました。これは、変換されたものに対して機能しているようです。しかし、回心していない人のためではありません。マイナーな調整として、プラン 17 も試してみます。
SELECT
count(Distinct TN2.user_id) as Converted,
count(Distinct TN.user_id) as NotConverted
FROM orders TN
INNER JOIN orders TN2
on TN.user_id = TN2.user_id
and (TN.plan_id = 16 OR TN.plan_id = 17)
and (TN2.plan_id <> 16 AND TN2.plan_id<>17)
結果はまったく同じですが、これは不可能です
両方が同じ番号に設定されている可能性があります。私はそれが非改宗者にとって正しいと確信しています。
事前にご協力いただきありがとうございます。