教义 - 按计数分组

Posted

技术标签:

【中文标题】教义 - 按计数分组【英文标题】:Doctrine - group by on count 【发布时间】:2018-12-17 11:57:22 【问题描述】:

这是我的代码:

    $qb = $this->_em
        ->createQueryBuilder();
    $query = $qb->select('COUNT(food) as cnt')
        ->from(Food::class, 'food')
        ->groupBy('cnt')
        ->getQuery()->getSQL();

但是我的期望类似于以下查询:

SELECT COUNT(f0_.food_id) AS sclr_0 FROM foods f0_ WHERE (f0_.deleted_at IS NULL) GROUP BY sclr_0

结果如下:

SELECT COUNT(f0_.food_id) AS sclr_0 FROM foods f0_ WHERE (f0_.deleted_at IS NULL) GROUP BY f0_.food_id

有什么建议吗?

【问题讨论】:

【参考方案1】:

您需要将您的查询用作子查询,我可以在原始 SQL 中执行此操作,但您可以从以下方面获得想法:

$qb = $this->_em
    ->createQueryBuilder();
$query = $qb->select('COUNT(food) as cnt')
    ->from(Food::class, 'food')
    ->groupBy('cnt')
    ->getQuery()->getSQL();


$qb2 = $this->_em
    ->createQueryBuilder();
$query2 = $qb->select('sclr_0')
    ->from('('.$query.')', 'cnt')
    ->groupBy('sclr_0 ')
    ->getQuery()->getSQL();

【讨论】:

以上是关于教义 - 按计数分组的主要内容,如果未能解决你的问题,请参考以下文章

嵌套字典:按日期分组,然后按枚举值分组并汇总计数

按条件分组和计数

mysql 计数,然后按该计数分组

数据框:如何在 Scala 中分组/计数然后按计数排序

按计数 sql 分组

按地理(或几何)分组的聚合/计数行