Die von Ihnen gestellte Abfrage ist für den Anwendungsfall nicht korrekt, Sie können den Unterschied sehen.
select count(*) as aggregate from game_results
where (school_id is null and season_id = '1')
group by user_id order by user_id asc;
gibt zwei Zeilen zurück
aggregate
1,
2
Eloquent wählt zuerst und gibt zurück, was 1 ist.
select count(*) as aggregate from game_results
where (school_id is null and season_id = '1')
group by user_id order by user_id desc;
gibt Zeilen zurück als
agrregate
2,
1
Eloquent ergibt in diesem Fall 2.
Was Sie wollen, ist die Anzahl von (Abfrage), die wieder 2 sein wird.
Es bekommen? Was Sie wollen, ist DISTINCT
$usersWithAnswersCount = GameResult::where([
'school_id' => null,
'season_id' => $this->season->id
])
->distinct('user_id')
->count();