Den forespørgsel, du laver, er ikke korrekt til brug, du kan se forskellen.
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;
returnerer to rækker
aggregate
1,
2
Veltalende vælger først og returnerer, hvilket er 1.
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;
vil returnere rækker som
agrregate
2,
1
Veltalende vil resultere 2 i dette tilfælde.
Det, du ønsker, er antallet af (forespørgsel), som igen bliver 2.
Får du det? det, du ønsker, er DISTINKT
$usersWithAnswersCount = GameResult::where([
'school_id' => null,
'season_id' => $this->season->id
])
->distinct('user_id')
->count();