Доктрина — группировка по счету

Вот мой код:

    $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

Любое предложение?

0

Решение

Посмотрите на перенаправления здесь:
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"]);
0

Другие решения

Вам нужно будет использовать ваш запрос в качестве подзапроса, я бы сделал это в сыром 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();
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector