РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
106 of 258 menu

Метод sum

Метод sum класса Expr создаёт объект выражения, который вычисляет сумму значений указанного поля. Этот метод часто используется в конструкторе запросов Doctrine для получения агрегированных данных. Первым параметром передаётся строка с именем поля, по которому будет производиться суммирование.

Синтаксис

Expr::sum(string $field)

Пример

Давайте создадим запрос, который вычисляет сумму значений поля quantity для всех записей в таблице:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\Query\Expr; class ArticleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Article::class); } public function getTotalQuantity(): int { $expr = new Expr(); $qb = $this->createQueryBuilder('a'); $qb->select($expr->sum('a.quantity')); return (int) $qb->getQuery()->getSingleScalarResult(); } } ?>

Результат выполнения кода для набора данных:

150

Пример

Давайте используем метод sum вместе с условием where для фильтрации записей перед суммированием:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\Query\Expr; class ArticleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Article::class); } public function getSumForActive(): int { $expr = new Expr(); $qb = $this->createQueryBuilder('a'); $qb->select($expr->sum('a.quantity')) ->where($expr->eq('a.active', true)); return (int) $qb->getQuery()->getSingleScalarResult(); } } ?>

Результат выполнения кода:

75

Смотрите также

  • класс Expr,
    который содержит методы для построения выражений
  • метод avg,
    который вычисляет среднее значение поля
  • метод min,
    который находит минимальное значение поля
  • метод max,
    который находит максимальное значение поля
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить