Предложение HAVING оценивается перед SELECT, поэтому сервер еще не знает об этом псевдониме.
Вместо COUNT(orders.id) AS order_count
вы должны сделать count(orders) as order_count
Вы можете посмотреть здесь
Я пробовал до сих пор, и это работает, надеюсь, это поможет вам.
User.where(vetting_status: ["Enabled"]).joins(:orders).where('orders.date >= ? AND orders.date <= ?', Date.today, Date.today + 6.days).group('users.first_name').having('count(orders) > 5').order('count(orders) desc').select('users.first_name')
В качестве альтернативы вам следует поступить так же, как в приведенном выше запросе: -
count(orders) as order_count
Это также означает, что он получит общее количество заказов пользователя в качестве количества заказов.вот так: -
User.where(vetting_status: ["Enabled"]).joins(:orders).where('orders.date >= ? AND orders.date <= ?', Date.today, Date.today + 6.days).select('users.first_name, count(orders) as order_count').group('users.first_name').having('count(orders) > 5').order('order_count desc')
Следовательно, оба ответа работают без ошибок.: D