Oracle
 sql >> Datenbank >  >> RDS >> Oracle

SQL - So wählen Sie eine Zeile mit einer Spalte mit maximalem Wert aus (+ gruppieren nach)

Es hört sich so an, als ob Sie die Zeile mit dem höchsten high_val auswählen möchten für jede Kategorie. Wenn ja, können Sie row_number() verwenden um jede Zeile innerhalb einer Kategorie nach ihrem high_val zu ordnen Wert, und wählen Sie nur die Zeilen mit dem höchsten Rang aus, d. h. 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