我有一個記錄表,列名爲item_id和key。 Item_id是指向名爲Item的表的外鍵。主動模型定義看起來如下:優化ActiveRecord計數查詢
class Record < ActiveRecord::Base
belongs_to :item
end
class Item < ActiveRecord::Base
has_many :records
end
現在我要統計有多少條記錄屬於具有不同的密鑰每個項目,結果應該像
{
#<Item id: 1, ...> => 19,
#<Item id: 2, ...> => 6,
#<Item id: 3, ...> => 21,
#<Item id: 4, ...> => 33,
}
我可以在兩線做與一個哈希對象計數:
records = Record.select('DISTINCT item_id, key').includes(:item)
records.each_with_object(Hash.new 0) { |e, a| a[e.item] += 1 }
我想知道是否有可能使它使用純活動記錄查詢或SQL語句。
這似乎不是我想要的,因爲它包含了計數項目的重複鍵。 – ZelluX