On laravel / mysql 8 site I need to get date where there are more rows by day with created_at datetime field With request :
$reactions = Reaction
::groupBy('created_at')
->orderBy('reaction_count', 'desc')
->select(
'created_at',
DB::raw('count(created_at) as reaction_count'))
->get();
I trace sql I see wrong counting(as time is calculated)
SELECT `created_at`, count(created_at) AS reaction_count
FROM `reactions`
GROUP BY `created_at`
ORDER BY `reaction_count` desc
I try to remake sql-statement as :
SELECT created_at
, count(CAST(created_at AS DATE)) AS reaction_count
FROM reactions
GROUP BY reaction_count
ORDER BY reaction_count
desc
but error raised :
SQL Error [1056] [42000]: Can't group on 'reaction_count'
I have a similar error with request:
In which way have I to remade sql and laravel request to work properly ?
"laravel/framework": "^10.48.12",
“8.0.36-0ubuntu0.22.04.1”
Thanks in advance!