Запрос доктрины с порядком по количеству

У меня есть юридическое лицо «Компания» (связанное с «Учетной записью»), которое может иметь несколько «Билетов».

Я хочу попасть в пятерку первых компаний с наибольшим количеством билетов

У меня это пока есть, но это не работает:

public function getByMostTickets($idAccount) {
    $qb = $this->createQueryBuilder('c')
        ->where("c.account = ".$idAccount)
        ->orderBy("COUNT(c.tickets)", "DESC");

    return $qb->getQuery()->getResult();
}

Видимо, не нравится, что я делаю «СЧЁТ» в orderBy.

Самый простой способ сделать это - использовать подзапрос для подсчета

Dimitris 13.07.2018 16:11

Ваш запрос работает без "COUNT" в orderBy?

Dirk J. Faber 13.07.2018 16:15

@ DirkJ.Faber это не так!

Tibo 13.07.2018 16:24

сначала вам нужно исправить свой запрос, создав правильные объединения. Тогда посмотрите: stackoverflow.com/questions/6000622/…

Dirk J. Faber 13.07.2018 16:30
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
4
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать что-нибудь подобное?

$qb = $this->createQueryBuilder('c')
    ->join("c.tickets", "t")
    ->where("c.account = :account_id")
    ->setParameter("account_id", $idAccount)
    ->groupBy("c.id")
    ->orderBy("COUNT(t.id)", "DESC");

[ИЗМЕНИТЬ]

извините, это должно сработать ... Но выгрузите результат, чтобы увидеть, что это вернет ...

$qb = $this->createQueryBuilder('c')
    ->select("c", "COUNT(t.id) as countTickets")
    ->join("c.tickets", "t")
    ->where("c.account = :account_id")
    ->setParameter("account_id", $idAccount)
    ->groupBy("c.id")
    ->orderBy("countTickets", "DESC");

Привет ! Спасибо за помощь :) Все еще та же ошибка, он не хочет, чтобы COUNT был в порядке По-моему ...

Tibo 13.07.2018 16:22

[Синтаксическая ошибка] строка 0, столбец 131: Ошибка: ожидаемый конец строки, получено '('

Tibo 13.07.2018 16:31

Другие вопросы по теме