Para fazer isso, você precisa separá-los de alguma forma; seu problema atual é que as 2 pontuações mais baixas são as mesmas, então qualquer operação de (des)igualdade realizada em um dos valores trata o outro de forma idêntica.
Você pode usar algo como a consulta analítica
ROW_NUMBER()
para identificar exclusivamente as linhas: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()
:Como a cláusula ORDER BY está em SCORE em ordem crescente, uma das pontuações mais baixas será removida. Este será um valor aleatório, a menos que você adicione outras condições de desempate ao ORDER BY.