Вот мой код:
$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
Любое предложение?
Посмотрите на перенаправления здесь:
Laravel Group по количеству столбцов
$products_data = DB::table("products")
->select("products.id", "products.name", DB::raw("COUNT(click.*) as count_click"))
->join("click","click.product_id","=","products.id")
->groupBy("products.id")
->get();
print_r($products_data);
попробуйте этот код также
$this->select(\DB::raw("*, count(*) as total"))
->where('viewed', "0")
->groupBy(["chat_id", "type"]);
Вам нужно будет использовать ваш запрос в качестве подзапроса, я бы сделал это в сыром 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();