我想执行类似
的查询SELECT * FROM ( SELECT * FROM products ORDER BY price ASC ) AS s GROUP BY item;
返回每件商品所有产品中最便宜的。使用此子查询很好,因为它可以在O(N logN)时间内运行。
所以我可以用find_by_sql找到它,但是能够将它与Product的其他范围链接会很好。
任何人都知道如何将其写为范围或链作用域和find_by_sql?
答案 0 :(得分:6)
您应该可以执行类似
的操作Product.from("(SELECT * FROM products ORDER BY price ASC) AS products").group(:item)