推进ORM:计算列的平均值
问题描述:
我有一个产品对象,而且我有评级对象,它表示对产品的评分。评级具有名为“值”的属性,其是从1到5的整数。推进ORM:计算列的平均值
对于给定的产品,我希望得到所有评级的值的平均值。我知道如何让所有的评级:
$product->getRatingsRelatedByFromProductId();
但我怎么能得到所有等级
答
的值的平均值为最新版本(推进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()
如果你需要。
谢谢。虽然我觉得这是一种很受欢迎的方式,Count是用一个简单的方法“$ authors-> getBooksRelatedByAuthorId() - > count()”来支持的;但是其他的聚合函数并不是...... – 2010-12-08 13:27:50