如何根據某些訂單子句選擇表的最前N%行?希望只有一個數據庫查詢從ActiveRecord的查詢中選擇最高N%,Rails
據this discussion,以下是從PostgreSQL的選擇從表中的前10%行的方式:
SELECT * FROM mytbl ORDER BY num_sales DESC LIMIT
(SELECT (count(*)/10) AS selnum FROM mytbl)
據this answer,中嵌套一個查詢其中的ActiveRecord子句將產生一個嵌套的SELECT,而不是射擊兩個查詢:
Item.where(product_id: Product.where(price: 50))
怎麼能像這樣在ActiveRecord的完成,無需太多的SQL?
用'find_by_sql'什麼問題嗎? –
我希望得到一個ActiveRecord解決方案,因爲SQL可以變得非常難看,我想在範圍中使用它 – Nicolas
也許將SQL傳遞給limit()方法不會那麼糟糕,但這不是顯而易見的 – Nicolas