Wygląda na to, że chcesz wybrać wiersz z najwyższą wartością high_val
dla każdej kategorii. Jeśli tak, możesz użyć row_number()
aby uszeregować każdy wiersz w kategorii zgodnie z jego high_val
wartość i wybierz tylko wiersze o najwyższym rankingu, 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