4
我有一個產品對象,而且我有評級對象,它表示對產品的評分。評級具有名爲「值」的屬性,其是從1到5的整數。推進ORM:計算列的平均值
對於給定的產品,我希望得到所有評級的值的平均值。我知道如何讓所有的評級:
$product->getRatingsRelatedByFromProductId();
但我怎麼能得到所有等級
我有一個產品對象,而且我有評級對象,它表示對產品的評分。評級具有名爲「值」的屬性,其是從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