Abyste to mohli udělat, musíte je nějak oddělit; váš aktuální problém je, že 2 nejnižší skóre jsou stejná, takže jakákoli operace (ne)rovnosti provedená na jedné z hodnot zachází s tou druhou identicky.
Můžete použít něco jako analytický dotaz ROW_NUMBER()
k jednoznačné identifikaci řádků:
select id, sum(score) / count(score) as score
from ( select id, score, row_number() over (order by score) as score_rank
from gamescore
where gameno = 1
)
where score_rank <> 1
group by id
ROW_NUMBER()
:
Protože klauzule ORDER BY je na SCORE ve vzestupném pořadí, bude odstraněno jedno z nejnižších skóre. Toto bude náhodná hodnota, pokud do ORDER BY nepřidáte další podmínky pro nerozhodný výsledek.