Rails 6.0.0
ruby-2.6.2
Здравствуйте. У меня есть модель под названием "Группа", которая подключается к базе данных SQLite. В этой базе данных есть два столбца, которые меня интересуют: это совпадения как целое число и итерация как целое число.
Чего я хотел бы добиться, так это прочитать столбец итерации и вернуть каждую уникальную запись (1, Например, 2,3 ..... 50) затем для каждой возвращенной записи выполните поиск в таблице совпадений и сложите их вместе.
Я дошел до того, что нашел уникальные значения в итерациистолбец с этим кодом:
2.6.2 :001 > Group.pluck(:iteration).uniq
(0.5ms) SELECT sqlite_version(*)
(0.2ms) SELECT "groups"."iteration" FROM "groups"
=> [1, 2]
Это ожидается, поскольку у меня пока только два уникальных значения.
А также возможность суммировать вместе столбец совпадений при фильтрации на итерации.
2.6.2 :001 > Group.where("iteration = 1").where("hits >0").sum(:hits)
(0.5ms) SELECT sqlite_version(*)
(0.1ms) SELECT SUM("groups"."hits") FROM "groups" WHERE (iteration = 1) AND (hits >0)
=> 143
Я думаю, что мне нужен какой-то цикл, но я не уверен, как получить значение из команды .pluck в команду .where. Я попробовал это, но это не сработало. Будем благодарны за любые предложения о том, как создать этот запрос.
Group.pluck(:iteration).uniq.each do |a|
hits_sum = Group.where("iteration = a ").where("hits >0").sum(:hits)
end