Dotaz, který zadáte, není správný pro případ použití, můžete vidět rozdíl.
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;
vrátí dva řádky
aggregate
1,
2
Výmluvný první vybere a vrátí, což je 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;
vrátí řádky jako
agrregate
2,
1
Výmluvný bude v tomto případě 2.
Co chcete, je počet (dotaz), který bude opět 2.
Získávám to? co chcete, je ODLIŠITELNÉ
$usersWithAnswersCount = GameResult::where([
'school_id' => null,
'season_id' => $this->season->id
])
->distinct('user_id')
->count();