でGROUP_BYを修正しましたI次の表:プロジェクトActiveRecordのは、いくつかの集約
私は過去3年間に年間2017からプロジェクトを見つけるにしました。その後、status
,elim
,industry
に基づいてフィルタリングされたプロジェクトでグループ化します。また、各年に基づいて合計金額を見つけるには、いくつかの集計が必要です。
私は次のことをしてしまいました。どのように私はそれを達成することができます
results["status"] => [
"2017": ["Active": 1, "Successful": 1],
"2016": ["Inactive": 1],
"2015": ["Active": 1]
]
results["elim"] => [
"2017": ["Death": 2],
"2016": ["Flood": 1],
"2015": ["Flood": 1]
]
results["amount"] => [
"2017": 32000.0,
"2016": 19000.0,
"2015": 2000.0,
]
:
results = {}
parameters = ['status', 'industry', 'elim']
@projects = Project.where("created_at >= ? AND created_at <= ?", 3.year.ago, DateTime.new(2017).end_of_year)
parameters.each do |param|
results[param] = @projects.group_by{|p| [p.created_at.year]}
end
は基本的に、私は結果は以下のようになりたいですか?どんな手掛かり?
"[" 2017 ":["死 ":2]" 2016 ":["洪水 ":1]" 2015 ":["洪水 ":1]]'は、 – Salil
なぜですか?上記のテーブルイメージを注意深くチェックすると、大丈夫だと分かります – Emu
rails/ruby consoleに配列の上にペーストするだけで、あなたが知ることができます。 – Salil