Det låter som att du vill välja raden med högst high_val för varje kategori. Om så är fallet kan du använda row_number() för att rangordna varje rad inom en kategori enligt dess high_val värde och välj bara de högst rankade raderna, dvs. 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