Вернуть запись с наибольшим количеством идентификаторов ссылок Active Record - PullRequest
0 голосов
/ 20 ноября 2018

Найдите страну с наибольшим количеством инженеров

У инженеров есть country_id, ссылающийся на таблицу Страны, я нашел ответ путем предположения и проверки, но мне было бы интересно узнать, как вернуть одну странус наибольшим количеством инженеров , я искал почти 24 часа сейчас ... ПОМОГИТЕ, пожалуйста

country = Country.find(34);
  country.engineers.count;
  => 9.

пока это то, что я получил

1 Ответ

0 голосов
/ 20 ноября 2018

Я полагаю, что это будет что-то вроде этого на sql:

SELECT countries.*, COUNT(*) AS engineersCount FROM countries
INNER JOIN engineers ON engineers.country_id = countries.id
GROUP BY countries.id
ORDER BY engineersCount DESC
LIMIT 1

Слегка измененная адаптация с использованием AR:

Country.joins(:engineers).group('countries.id').order('COUNT(*) DESC').limit(1)

Refs:

МожетЯ делаю макс (количество (*)) в SQL?

Как найти наибольшее количество раз значение в записях?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...