Det lyder som om du vil vælge rækken med den højeste high_val
for hver kategori. Hvis ja, kan du bruge row_number()
at rangere hver række inden for en kategori i henhold til dens high_val
værdi, og vælg kun de højest rangerede rækker, 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