Zdá se, že chcete vybrat řádek s nejvyšší hodnotou high_val
pro každou kategorii. Pokud ano, můžete použít row_number()
seřadit každý řádek v rámci kategorie podle jeho high_val
hodnotu a vyberte pouze nejvýše hodnocené řádky, tj. 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