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