1
私はサインアップしています。 created_at
レコードに基づいて、毎日のサインアップ数で過去7日間のグラフを表示したい毎日のレコード数を計算します
アクティブなレコードクエリを使用して、これを手動で計算する代わりに何らかのグループ化とカウントで使用することはできますか反復を通して?
私はサインアップしています。 created_at
レコードに基づいて、毎日のサインアップ数で過去7日間のグラフを表示したい毎日のレコード数を計算します
アクティブなレコードクエリを使用して、これを手動で計算する代わりに何らかのグループ化とカウントで使用することはできますか反復を通して?
to_date
を使用すると、すべての時間情報を取り除くことができ、効果的な日数が得られます。
User.where('created_at >= ?', 1.week.ago).group_by { |u| u.created_at.to_date }.map { |_,v| [_, v.length]}.to_h
OR、あなたは時間の部分を気にしない場合は、この使用できます。これはあなたのcreated_at
とcount
とハッシュを取得します
User.where('created_at >= ?', 1.week.ago).group(:created_at).count
を。
私はちょうどカウントを得ることができる方法はありますか? –
'{2016-08-19 13:59:39 UTC => 2016-08-19 07:30:24 UTC => 2016-08-22 12:37:51 UTC => 2016年1月1日〜 08-19 07:23:36 UTC => 1、2016-08-24 08:04:54 UTC => 1} '時間がかかるように見えます。私はちょうど日付に基づいてそれを得ることができる任意の方法。 2番目のクエリを使用しています –
多数のレコードでは、グループ化がSQLで行われ、すべてのレコードを取得してからルビでグループ化するため、確かに最速のソリューションです。 –