1

次のようなクエリを実行したい

SELECT * FROM ( SELECT * FROM products ORDER BY price ASC ) AS s GROUP BY item;

各アイテムのすべての製品の中で最も安いものを返します。このサブクエリを使用すると、O(N logN) 時間で実行できるので便利です。

したがって、find_by_sql でこれを見つけることができますが、Product の他のスコープとチェーンできると便利です。

これをスコープまたはチェーン スコープおよび find_by_sql として記述する方法を知っている人はいますか?

4

1 に答える 1

6

あなたは次のようなことができるはずです

Product.from("(SELECT * FROM products ORDER BY price ASC) AS products").group(:item)
于 2011-02-02T19:36:33.040 に答える