In Doctrine I can do:
public function getCount()
{
$q = $this->createQuery('q')
->select('*')
->addSelect('count(q.name) as count')
->groupBy('q.name')
->orderBy('count DESC');
return $q->execute();
}
How can I do the same in Propel in Symfony 1.4?
Damned! It's easier than that!
If you need to count result rows for a given query, you need to use the count()
termination method, basically:
MyTableQuery::create()->count();
Read the following documentation section for more information: http://www.propelorm.org/documentation/03-basic-crud.html#query_termination_methods
If you want to add a count
or nb
extra column to your query which represent a SQL aggregate functions like COUNT
or SUM
, then you should use the withColumn()
method:
$query = MyTableQuery::create()
->withColumn('COUNT(*)', 'Count')
->select(array('Name', 'Count'))
->groupByName()
->orderByCount()
;
$results = $query->find();