Có vẻ như bạn muốn chọn hàng có high_val
cao nhất cho mỗi danh mục. Nếu vậy, bạn có thể sử dụng row_number()
để xếp hạng từng hàng trong một danh mục theo high_val
của nó và chỉ chọn các hàng được xếp hạng cao nhất, tức là 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