我试图按字段(年)对实体进行分组并对其进行计数。如何通过在教义2计数?
代码:
public function countYear()
{
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('b.year, COUNT(b.id)')
->from('\My\Entity\Album', 'b')
->where('b.year IS NOT NULL')
->addOrderBy('sclr1', 'DESC')
->addGroupBy('b.year');
$query = $qb->getQuery();
die($query->getSQL());
$result = $query->execute();
//die(print_r($result));
return $result;
}
我似乎不能说COUNT(b.id) AS count
,因为它给出了一个错误,并 我不知道作为addOrderby(???, 'DESC')
值使用什么?
我不认为数据库与DBAL有关系吗?无论如何,它得到它的工作:'('\ My \ Entity \ Album','b') - > $ qb-> select('b.year,COUNT(b.id)AS mycount') - > where 'b.year IS NOT NULL') - > orderBy('mycount','DESC') - > groupBy('b.year');'感谢您指出关键字问题。 – Tjorriemorrie 2011-05-14 09:07:42
您的替代方法不起作用。此外,如果你想重复使用你的结果作为子查询 - (例如。orderBy)添加COUNT选择不起作用。 – wdev 2011-11-01 14:56:14