0

where クエリを実行する前に、結果を制限できるようにしたいと考えています。私は、たとえば 50 の応答のランダム サンプルを見て、「はい」と応答したユーザーの数を数えたいという実験をしようとしています。response.limit(50).where(:chosen_answer => 'yes').countクエリ全体の制限を実行するため、50 を取得します。

これを2つの別々のクエリにする方法はありますか?

4

1 に答える 1

0

単一のクエリとして実行できますが、ネストされたクエリを使用します。

# 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
于 2013-03-18T23:09:14.420 に答える