sql >> Base de Datos >  >> RDS >> Oracle

SQL:cómo seleccionar una fila que tiene una columna con valor máximo (+ agrupar por)

Parece que desea seleccionar la fila con el high_val más alto para cada categoría. Si es así, puede usar row_number() para clasificar cada fila dentro de una categoría según su high_val valor, y solo seleccione las filas mejor clasificadas, es decir, 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