Propel ORM: Расчет среднего по столбцу - PullRequest
4 голосов
/ 06 декабря 2010

У меня есть объект продукта, и у меня есть рейтинг объектов, которые представляют рейтинг продукта. У рейтинга есть свойство с именем «value», которое является целым числом от 1 до 5.

Для данного товара я бы хотел получить среднее значение всех оценок. Я знаю, как получить все оценки:

$product->getRatingsRelatedByFromProductId();

Но как мне получить средние значения всех оценок

1 Ответ

3 голосов
/ 08 декабря 2010

Для последней версии (Propel 1.5), вот пример из документа: http://www.propelorm.org/wiki/Documentation/1.5/ModelCriteria#AddingColumns

$authors = AuthorQuery::create()
  ->join('Author.Book')
  ->withColumn('COUNT(Book.Id)', 'NbBooks')
  ->groupBy('Author.Id')
  ->find();
foreach ($authors as $author) {
        echo $author->getName() . ': ' . $author->getNbBooks() . " books\n";
}

Полагаю, что вы можете легко заменить COUNT () на AVG (), MIN (), MAX () или любую другую статистическую функцию и удалить ->groupBy(), если вам нужно.

...