Изглежда, че искате да изберете реда с най-висок high_val
за всяка категория. Ако е така, можете да използвате row_number()
за класиране на всеки ред в рамките на категория според неговия high_val
стойност и изберете само най-високо класираните редове, т.е. rn = 1
:
select * from (
select row_number() over (partition by category order by high_val desc, date asc) rn, *
from mytable
where something = 'avalue'
) t1 where rn = 1