Я пытаюсь преобразовать запрос MySQL8 в Doctrine DQL в Symfony4. Я использовал расширения https://github.com/beberlei/DoctrineExtensions. Но ошибки все равно есть.
Запрос работает хорошо.
SELECT id, machine_amount, LAG(machine_amount) OVER ( PARTITION BY machine_id ORDER BY id ) AS prevField FROM machine_income
repositoryClass
$q = $this->createQueryBuilder('mi');
$q->select('mi.id, mi.machineAmount');
$q->addSelect('LAG(mi.machineAmount) OVER (PARTITION BY mi.machine ORDER BY mi.id) AS prevField');
return $q->getQuery()->getSQL();
doctrine.yaml
doctrine:
orm:
dql:
string_functions:
lag: DoctrineExtensions\Query\Mysql\Lag
over: DoctrineExtensions\Query\Mysql\Over
DQL out
SELECT mi.id, mi.machineAmount, LAG(mi.machineAmount) OVER (PARTITION BY mi.machine ORDER BY mi.id) AS prevField FROM App\Entity\MachineIncome mi
Когда я пытаюсь создать getSQL (), я увидел ошибку.
ошибка
[Syntax Error] line 0, col 59: Error: Expected Doctrine\ORM\Query\Lexer::T_FROM, got '('
любая помощь?