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

Метод avg класса Expr

Метод avg класса Expr создаёт выражение для вычисления среднего арифметического значений указанного поля. Первым параметром передаётся имя поля (или алиас поля) сущности, по которому нужно посчитать среднее значение. Метод обычно используется внутри функции select конструктора запросов QueryBuilder вместе с методом setParameter, если в выражение подставляется параметр.

Синтаксис

avg(field)

Пример

Давайте посчитаем среднее значение поля integer для всех записей сущности Article:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $res = $em->createQueryBuilder() ->select('avg(a.integer) as avg_value') ->from(Article::class, 'a') ->getQuery() ->getSingleScalarResult(); return new Response((string) $res); } } ?>

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

"3"

Пример

Давайте посчитаем среднее значение с помощью метода avg класса Expr и вернём результат в виде массива:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use DoctrineORMQueryExpr; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $expr = new Expr(); $res = $em->createQueryBuilder() ->select($expr->avg('a.integer')) ->from(Article::class, 'a') ->getQuery() ->getResult(); return new Response(json_encode($res)); } } ?>

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

[{"1":"3"}]

Пример

Давайте посчитаем среднее значение поля integer только для записей, у которых поле boolean равно true:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use DoctrineORMQueryExpr; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $expr = new Expr(); $res = $em->createQueryBuilder() ->select($expr->avg('a.integer')) ->from(Article::class, 'a') ->where($expr->eq('a.boolean', ':flag')) ->setParameter('flag', true) ->getQuery() ->getSingleScalarResult(); return new Response((string) $res); } } ?>

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

"4"

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

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