Если ваша СУБД поддерживает их, тогда аналитическая функция будет хорошим подходом, особенно если вам нужны все столбцы строки.
select ...
from (
select accountid,
score,
...
row_number() over
(partition by accountid
order by score desc) score_rank
from scores)
where score_rank = 1;
Возвращаемая строка является неопределенной в описываемом вами случае, но вы можете легко изменить аналитическую функцию, например, упорядочив (Score desc, test_date desc), чтобы получить более позднюю из двух соответствующих высоких оценок.
Другие аналитические функции, основанные на ранге, достигнут аналогичной цели.
Если вы не возражаете против дубликатов, то следующее, вероятно, будет более эффективным, чем ваш текущий метод:
select ...
from (
select accountid,
score,
...
max(score) over (partition by accountid) max_score
from scores)
where score = max_score;