doctrine query builder Получить одновременно сумму и количество SUM(), COUNT()
Primary tabs
Задача
Получить 2 результата с помощью одного запроса к БД: например, и сумму, и количество объектов.
Решение
- В запросе необходимые поля/расчитываемые значения указываем через запятую и присваиваем им псевдонимы:
$this->getEntityManager() ->createQueryBuilder() ->select('SUM(r.sum) as sum, COUNT(r) as count') ->from(Rejection::class, 'r') ->getQuery() ->getOneOrNullResult(); - В итоге получаем массив, индексами которого являются те самые псевдонимы:
$rejectionCountAndSum = $rejectionRepository->getCountAndSumOfRejections(); $rejectionCount = $rejectionCountAndSum['count']; $rejectionSum = $rejectionCountAndSum['sum'];
Источники
- https://symfonycasts.com/screencast/doctrine-queries/select-sum
- https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/query-builder.html
- Log in to post comments
- 2460 reads