Untuk melakukan ini, Anda harus memisahkannya entah bagaimana; masalah Anda saat ini adalah bahwa 2 skor terendah adalah sama sehingga setiap operasi persamaan (dalam) yang dilakukan pada salah satu nilai memperlakukan yang lain secara identik.
Anda dapat menggunakan sesuatu seperti kueri analitik ROW_NUMBER()
untuk mengidentifikasi baris secara unik:
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()
:
Karena klausa ORDER BY ada di SCORE dalam urutan menaik, salah satu skor terendah akan dihapus. Ini akan menjadi nilai acak kecuali Anda menambahkan kondisi tie-breaker lainnya ke ORDER BY.