これを行うには、何らかの方法でそれらを分離する必要があります。現在の問題は、最も低い2つのスコアが同じであるため、いずれかの値に対して実行された(不)等式操作は、もう一方の値を同じように扱うことです。
分析クエリROW_NUMBER()
行を一意に識別するには:
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()
:
ORDER BY句は昇順でSCOREにあるため、最も低いスコアの1つが削除されます。 ORDER BYに他のタイブレーカー条件を追加しない限り、これはランダムな値になります。