从表列获取最大值,从另一列获取关联的ID

时间:2019-07-18 23:50:09

标签: ruby-on-rails ruby activerecord

我需要从最小值表中获取每个Supplier_id的最高最高消费价格。每个供应商都有多个支出价格,我似乎找不到有效的查询来得出每个供应商的最高价。

我尝试过排序和分组,但是这似乎是一个非常复杂的方法

min = Minimum.where(supplier_profile_id: [10005, 100010])
min.order(spend_price: :desc, supplier_profile_id: 
   :desc).group_by(&:supplier_profile_id)
min.each do |key, value|
                        max_spend_prices << [key, value[0].spend_price]
                    end

2 个答案:

答案 0 :(得分:0)

Minimum.group(:supplier_profile_id).maximum(:spend_price)

答案 1 :(得分:0)

我认为这就是您要寻找的

Minimum
  .where(supplier_profile_id: [10005, 100010])
  .group(:supplier_profile_id)
  .maximum(:spend_price)