Как сделать запрос с группировкой по дате?

Товарищи, сограждане помогите правильно написать запрос. Суть такая: есть операции с датой создания (created_at) и суммой (payment_sum). Нужно сделать запрос на вывод суммы по всем операция по дням.
В бд дата хранится так:
2019-10-23 10:41:41
В контроллере у меня вот что:
$date = Carbon\Carbon::today()->subDays(7);

$todaySales = (Operation::query()
        ->select(DB::raw("created_at, SUM(payment_sum) as payment_sum"))
        ->where([
            ['user_id', Auth::id()],
            ['status', 100]])
        ->where('created_at','>',  $date)
        ->groupBy('columnForGroup')
        ->get());

        foreach ($todaySales as $todaySale){
            $date = $todaySale->created_at;
            $todaySale->date_at = $date->format('d/m');
        }

        return response()->json([
            'success' => true,
            'mass' => $todaySales,
        ]);
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
@Enj0y
Очевидно использовать функцию в группировке
->groupBy("DATE_FORMAT(created_at, '%d-%m-%Y')")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@14frol14 Автор вопроса
Спасибо за ответ. Решил уже сам. Если кому-то будет интересно, то сделал так.
->select(DB::raw("DATE(created_at) as day, count(payment_sum) as payment_sum"))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы