La requête que vous faites n'est pas correcte pour le cas d'utilisation, vous pouvez voir la différence.
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;
renverra deux lignes
aggregate
1,
2
Eloquent choisit en premier et revient qui est 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;
renverra les lignes comme
agrregate
2,
1
Eloquent donnera le résultat 2 dans ce cas.
Ce que vous voulez est le nombre de (requête) qui sera à nouveau 2.
L'obtenir? ce que vous voulez est DISTINCT
$usersWithAnswersCount = GameResult::where([
'school_id' => null,
'season_id' => $this->season->id
])
->distinct('user_id')
->count();