我有一个Book
型号,它的属性为cost
。Rails示波器:成本最高的返回记录
我想写一个查询,获取具有最高cost
的所有book
记录。
我需要考虑多于一个book
可能分享的情况,确切的相同最高cost
。在这种情况下,我抓住所有那些共享最高cost
(不只是其中之一)的book
记录。
示例数据库建设为books
表:
id | cost
1 4
2 10
3 7
4 20
5 15
6 20
7 3
,所以我需要写的范围将返回 book
记录:用4
的id
记录,并与6
的ID记录。
我认为答案涉及使用maximum
方法,having
方法和group
方法,但我无法将所有部分放在一起作为范围。
这是我尝试过的一件事,但它不起作用。似乎仅返回具有相对于所有记录提供最高性价比最高cost
的最后一条记录:
Book.group(:cost).having('books.cost = ?', (Book.maximum(:cost)))
你见过[这](http://stackoverflow.com/a/32351211/382982)回答? – pdoherty926