Để làm được điều này, bạn phải tách chúng ra bằng cách nào đó; vấn đề hiện tại của bạn là 2 điểm thấp nhất giống nhau nên bất kỳ hoạt động bình đẳng (trong) nào được thực hiện trên một trong hai giá trị sẽ xử lý giá trị kia giống hệt nhau.
Bạn có thể sử dụng một cái gì đó như truy vấn phân tích ROW_NUMBER()
để xác định duy nhất các hàng:
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()
:
Vì mệnh đề ORDER BY ở trên ĐIỂM theo thứ tự tăng dần, một trong những điểm thấp nhất sẽ bị loại bỏ. Đây sẽ là một giá trị ngẫu nhiên trừ khi bạn thêm các điều kiện ràng buộc khác vào ORDER BY.