Oracle
 sql >> Base de données >  >> RDS >> Oracle

SQL - Comment sélectionner une ligne ayant une colonne avec une valeur maximale (+ grouper par)

Il semble que vous souhaitiez sélectionner la ligne avec la valeur high_val la plus élevée pour chaque catégorie. Si c'est le cas, vous pouvez utiliser row_number() pour classer chaque ligne d'une catégorie selon sa high_val et sélectionnez uniquement les lignes les mieux classées, c'est-à-dire 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