0
我有三個型號:整蠱查詢:僅獲得的平均最新記錄
Supplier
|
Price - Book
|
PriceType
價格是其他三款車型接合表。
每個月都會收集到最新的價格。因此,每本圖書/供應商/ PriceType組合都有多個價格,並在不同的時間點收集。只有這個組合的最後價格是我感興趣的價格。
我現在想知道,對於特定PriceType /供應商組合,所有圖書的平均價格是多少,忽略除最後一個價格那個特定的組合。
有沒有辦法做到這一點的數據庫(Postgres的)水平上,而不是寫這樣的事情非常緩慢:
prices = []
Supplier.first.books.each do |book|
latest_price_for_book = Price.joins(:price_type, :book).where("price_types.id = ? AND books.id = ?", PriceType.first, book).last
prices << latest_price_for_book.price
end
average = prices.sum/prices.size.to_f
對於每本書,我只想使用最新價格,然後獲得特定PriceType/Supplier組合的平均值。 – migu
我更正了代碼,因此它按預期使用書籍變量。 – migu