Я пытаюсь преобразовать следующий запрос SQL в код Laravel с помощью пакета laravel-cte taudenmeirs.
WITH `cte` AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY channel_id ORDER BY created_at DESC) AS row_number
FROM `Videos`
)
SELECT `Channels`.*, `cte`.*
FROM `Channels`
LEFT JOIN `cte`
ON `Channels`.`id` = `cte`.`channel_id`
WHERE `cte`.`row_number` = 1;
Проблема в том, что я получаю следующий ответ от сервера:
Подсветка \ База данных \ QueryException: SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1140 Смешивание столбцов GROUP (MIN (), MAX (), COUNT (), ...) без столбцов GROUP недопустимоесли нет предложения GROUP BY (SQL: с cte as (выберите , ROW_NUMBER () OVER (PARTITION BY channel_id ORDER BY create_at DESC) AS row_number из видео) выберите Channels. из каналов, оставшихся присоединиться к cte на каналах.id = cte.channel_id где cte.rn = 1) в файле /Users/mark/Workspace/api.site/vendor/laravel/framework/src/Illuminate/Database/Connection.php в строке 665