私は各顧客の最終日の最後のレコードを統計テーブルから取得しようとしています。 最後の日から最も売れている商品を持つ顧客を選択したいと思います。すべての顧客からレールの最後のレコードを選択
統計情報は1時間ごとに生成されるため、顧客からの複数の統計情報がありますが、最後の統計情報が必要です。
私はいくつかのコマンドを試しましたが、ただエラーが表示されました。
Statistic.where("created_at < ?",1.day.ago).select(:customer_id).distinct.order(created_at: :desc)
または
Statistic.where("created_at < ?",1.day.ago).select(:customer_id).distinct.last
は摘むと最高のソリューションですか?または2つの選択肢を作成する必要がありますか? どこに 'sold_items'を置くべきかわかりません。
これも解決策ですが、わかりません。
Customer.all.each do |customer|
stats = customer.statistics.where("created_at < ?",Date.today).last
count = stats.sold_items if stats.sold_items > count
best = customer if count = stats.sold_items
end
モデル: 顧客にhas_many:統計 - belongs_toの統計:顧客
モデル宣言を追加できますか? 最初のクエリを機能させるには、結合を行う必要があります。だから二番目。 – marmeladze
'Customer'モデルと' Statistic'モデルの間に 'has_many''' belongs_to'関係がありますか? – sa77
右。顧客has_many:統計および統計belongs_to:顧客 –