Kueri yang Anda buat tidak benar untuk kasus penggunaan, Anda dapat melihat perbedaannya.
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;
akan mengembalikan dua baris
aggregate
1,
2
Eloquent memilih pertama dan kembali yaitu 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;
akan mengembalikan baris sebagai
agrregate
2,
1
Fasih akan menghasilkan 2 dalam kasus ini.
Yang Anda inginkan adalah hitungan (query) yang akan menjadi 2.
Mendapatkannya? yang Anda inginkan adalah BERBEDA
$usersWithAnswersCount = GameResult::where([
'school_id' => null,
'season_id' => $this->season->id
])
->distinct('user_id')
->count();