Sql 如何在Rails中执行更复杂的查询?

Sql 如何在Rails中执行更复杂的查询?,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,不理解如何用ActiveRecord的语法表示特定类型的查询 Company has_many shareprices 当流程运行以更新股价时,会在股价表中创建一个新条目。因此,很明显,每个公司的股价都有很多列。在这种情况下,你可能会发现一家公司在上一个时间段有5个非常高的股价条目 假设我想返回上一个时间段中当前股价最高的公司-我需要它从股价表中基本返回该公司的最高价格,然后找到下一个 我不知道如何用ActiveRecord语法实现这一点。我曾尝试过许多受stackoverflow答案

不理解如何用ActiveRecord的语法表示特定类型的查询

Company 
has_many shareprices
  • 当流程运行以更新股价时,会在股价表中创建一个新条目。因此,很明显,每个公司的股价都有很多列。在这种情况下,你可能会发现一家公司在上一个时间段有5个非常高的股价条目
假设我想返回上一个时间段中当前股价最高的公司-我需要它从股价表中基本返回该公司的最高价格,然后找到下一个

  • 我不知道如何用ActiveRecord语法实现这一点。我曾尝试过许多受stackoverflow答案启发的方法,但总是无法让它返回独特的公司,因此我在选择独特、加入、分组或其他方面遗漏了一点
环境:部署到heroku的postgresSQL后端


非常感谢您的帮助。

如果不了解您的结构,很难提供具体的答案。但像这样的事情应该行得通

Company.select('max(share_prices.price) as price,companies.id').joins(:share_prices).group(:id).order('price')

谢谢你,这让我找到了正确的方向,我明白了。我走得太远了,非常感谢。