У меня здесь небольшая проблема: я хочу получать заказы из моей таблицы заказов, группируя их по полю created_at и суммируя суммы для каждой даты. Сумма взята из другой таблицы (товаров) и называется ценой. В таблице заказов в качестве внешнего ключа указан product_id. Затем я сделал это
$ord = DB::table('orders')
->join('products', 'orders.product_id', '=', 'products.id')
->select(DB::raw('DATE(orders.created_at) as created_at'),
'products.price',
//DB::raw('sum(products.price) as amount')
)->orderBy('orders.created_at', 'desc')
->get();
$ord->groupBy('created_at');
return $ord;
Проблема здесь в том, что когда я раскомментирую //DB::raw('sum(products.price) as amount '), у меня появляется ошибка Синтаксис ошибка или нарушение прав доступа: 1140 В агрегированном запросе без GROUP BY выражение № 1 списка SELECT содержит неагрегированный столбец . Без него у меня будет такой результат
[{"created_at":"2020-05-26","price":"950"},{"created_at":"2020-05-18","price":"4000"},{"created_at":"2020-05-18","price":"4000"},{"created_at":"2020-05-12","price":"320"}]
Но отсюда две записи 18-го числа с 4000 должны агрегироваться до 8000 только для этой даты, вот как я этого хочу. Мы будем очень благодарны за любую полезную помощь по этому поводу