私は、適切な名前のuser_dataオブジェクト内にユーザデータを保持するRailsアプリケーションを持っています。過去12か月間毎月作成されたアクティブユーザー(ステータス= 'アクティブ')の合計ユーザー数とユーザー数を示すサマリー表を表示します。私のPostgresデータベースに対してSQLで概要ActiveRecordを使ったグループによる集計
、私は次のクエリ(あなたはその点を無視することができますので、私はそこに使う日付は、アプリケーションによって計算された)と私が望む結果を得ることができます。
SELECT total.creation_month,
total.user_count AS total_count,
active.user_count AS active_count
FROM
(SELECT date_trunc('month',"creationDate") AS creation_month,
COUNT("userId") AS user_count
FROM user_data
WHERE "creationDate" >= to_date('2015 12 21', 'YYYY MM DD')
GROUP BY creation_month) AS total
LEFT JOIN
(SELECT date_trunc('month',"creationDate") AS creation_month,
COUNT("userId") AS user_count
FROM user_data
WHERE "creationDate" >= to_date('2015 12 21', 'YYYY MM DD')
AND status = 'Active'
GROUP BY creation_month) AS active
ON total.creation_month = active.creation_month
ORDER BY creation_month ASC
ActiveRecordでこのクエリを書く方法を教えてください。
私は以前、総ユーザー数を表示して月単位でグループ化しましたが、アクティブユーザー数の追加列を追加する方法には苦労しています。
私のアプリケーションはRuby 2.1.4とRails 4.1.6です。