Sembra che tu voglia selezionare la riga con il high_val
più alto per ogni categoria. In tal caso, puoi utilizzare row_number()
per classificare ogni riga all'interno di una categoria in base al suo high_val
value e seleziona solo le righe con il punteggio più alto, ad esempio 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