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