0
我希望能夠在執行where查詢之前限制我的結果。我正在嘗試做一個實驗,在那裏我查看50個答案的隨機樣本,然後要計算回答「是」的用戶數量。如果我這樣做response.limit(50).where(:chosen_answer => 'yes').count
我得到50,因爲它對整個查詢執行限制。Rails範圍限制在哪裏
有沒有辦法讓這成爲兩個單獨的查詢?
我希望能夠在執行where查詢之前限制我的結果。我正在嘗試做一個實驗,在那裏我查看50個答案的隨機樣本,然後要計算回答「是」的用戶數量。如果我這樣做response.limit(50).where(:chosen_answer => 'yes').count
我得到50,因爲它對整個查詢執行限制。Rails範圍限制在哪裏
有沒有辦法讓這成爲兩個單獨的查詢?
你可以做到這一點作爲一個單一的查詢,但通過使用嵌套查詢:
# get 50
inner_query = response.select('id').limit(50).to_sql
# then filter within those 50
results = response.joins("INNER JOIN #{inner_query} x on x.id = responses.id").where(...).count
不,我不想50個結果。我想獲得一組結果(通過其他指標選擇)將其限制爲50,然後計算其中有多少個符合條件。 – 2013-03-18 23:16:05
啊,我誤解了。我已經更新了我的答案。 – 2013-03-19 00:53:59