Я ищу лучший способ написать этот запрос, используя только ActiveRecord?

#ruby-on-rails #activerecord #rails-activerecord

Вопрос:

Пытаюсь переписать этот код только более активно.

 .where("external_id in(select external_id from bmp group by external_id having count(*) > 1)")
 

Комментарии:

1. Bmp.group(:external_id).наличие(«количество(*) >1»).выберите(:идентификатор) . Можете ли вы попробовать это

2. Почему бы просто не использовать ВНУТРЕННЕЕ СОЕДИНЕНИЕ? Каковы модели, таблицы и ожидаемый результат?

3. .where(external_id: Bmp.select(:external_id).group(:external_id).having(Arel.star.count.gt(1))) должно привести к этому точному условию (предполагая Bmp , что это «модель»). Правильно это или нет для вашего варианта использования, действительно зависит от вас.

4. Спасибо вам, ребята! @enginersmnky, твой ответ идеально подходит!