Я работаю над политическим приложением для клиента, и у меня есть две таблицы базы данных.Один имеет всех зарегистрированных избирателей в определенном городе, а другой имеет все голоса для каждого зарегистрированного избирателя.В совокупности эти две таблицы насчитывают более 7 миллионов записей.Этот сайт написан на CakePHP.
Я уже сужаю результаты по ряду критериев, но мне нужно отфильтровать его также по проценту выборов, в которых проголосовал тот или иной избиратель с момента его регистрации.У меня есть все голоса, год их регистрации, и что каждые 4 года проводятся 3 выборы.Я пытался сделать подзапрос для фильтрации результатов, но это заняло слишком много времени.Потребовалось 10 минут, чтобы вернуть 10 записей.Я должен сделать это каким-то образом в соединении, но я совсем не разбираюсь в соединениях.
Это в основном то, что мне нужно сделать:
SELECT * FROM voters
WHERE (number of votes voter has) >= (((year(now())-(registration_year) ) * 3/4)
* (percentage needed))
Все этодовольно просто.Хитрость заключается в подсчете голосов избирателей из базы данных голосов.Есть идеи?