Я бы упростил это до
SELECT AVG(ir.score) FROM "ITEM_REVIEW" ir
Да, гораздо эффективнее хранить миллион строк в БД на быстром жестком диске и вычислять один float, который вы передаете по сетевому соединению,чем передача миллиона потоковых данных по сетевому соединению на общий сервер с более разнообразными обязанностями и использование некоторого медленного JavaScript для вычисления среднего
Базы данных невероятно хороши для хранения, сортировки, соединения и обработки данных;это их единственная цель / полная причина существования. Команды умных людей проводят все свое время, внедряя и улучшая производительность функций обработки данных, чтобы их базы данных оставались на вершине кучи. Оставьте ваши данные в базе данных, где это возможно, и перетащите наименьшее количество байтов, которое вы можете, по медленным сетевым соединениям (суммируйте и фильтруйте в БД всегда)