• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Doctrine 2 Использование Оператора Sum В Dql С Джойнами Нескольких Таб

  • Автор темы Nixel
  • Дата начала
N

Nixel

Всем привет!

У меня есть работающий запрос на DQL

Код:
SELECT partial cap.{id, title, name},
clogin,
partial ccampaig.{id, name},
cadv, ckeyword,
partial ckeywordstat.{id, clicksSearch, sumSearch, showsSearch}

FROM MyBundle:ContextAdvPlatform cap

LEFT JOIN cap.contextLogins clogin
LEFT JOIN clogin.contextCampaigns ccampaig
LEFT JOIN ccampaig.contextAdvs cadv
LEFT JOIN cadv.contextKeywords ckeyword
LEFT JOIN ckeyword.contextKeywordStats ckeywordstat

GROUP BY ckeywordstat.contextKeyword

Если поменять
Код:
partial ckeywordstat.{id, clicksSearch, sumSearch, showsSearch}
на
Код:
partial ckeywordstat.{
id, 
SUM(clicksSearch),
SUM(sumSearch),
SUM(showsSearch)
}
То вылезет исключение
Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_CURLY_BRACE, got '('

Если поменяем на
Код:
ckeywordstat.id,
SUM(ckeywordstat.clicksSearch),
SUM(ckeywordstat.sumSearch),
SUM(ckeywordstat.showsSearch)

То получим 4 поля в самом конце вернувшегося массива без суммирования.

Как правильно написать запрос, который будет группировать ckeywordstat для каждого ckeyword при этом сумируя поля clicksSearch, sumSearch, showsSearch

Doctrine version 2.3.3-DEV

Всем заранее спасибо за помощь ! ))
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!