Нет серебряной пули здесь.
Pros
Вы можете иметь довольно сложные вычисления на уровне базы данных, то профи делать это на уровне базы данных, в том, что СУБД ближе к данным и передавать данные туда и обратно из дисков, через RDBMS , через сеть, в приложение обычно более дорого, а затем выполняет вычисления в СУБД (где выполняется SQL) и отправляет только результаты в приложение.
Другой про то, что централизация логики делает систему проще в обслуживании, но ...
Против
... в зависимости от вашей базы данных по выбору, вы можете не иметь широкий выбор языков программирования, доступных на уровне РСУБД, поэтому для более сложных задач может оказаться очень неудобным кодирование вашей задачи в некотором процедурном варианте SQL.
Другие причины не выполнять его на уровне РСУБД - если расчеты являются ресурсоемкими (процессор, память, проблемы с O (n!) И т. Д.), А размер вывода сопоставим с входом. В этом случае данные доставки на стороне приложения могут быть интересны для облегчения ресурсов сервера базы данных (вы в некотором смысле распределяете вычислительные задачи, однако, если ваш сервер приложений живет на том же оборудовании, что и сервер базы данных, вы, возможно, ничего не выиграете, если только вы не может полностью продвигать клиентов, смотреть на трехуровневую и многоуровневую архитектуру).
Какой сервер вы используете? –
Не можете ли вы сохранить результат комплексного вычисления вместе с A, B и C вместо вычисления его при выборе строк? –
Укажите свою базу данных, так как в SQL можно сделать довольно сложные вещи (например, в postgres довольно легко смешивать python, perl, tcl или pl с SQL). – Unreason