Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Uzyskaj wartość na podstawie maks. innej kolumny pogrupowanej według innej kolumny

Możesz podejść do tego za pomocą row_number() :

select key, val
from (select t.*, row_number() over (partition by key order by num desc) as seqnum
      from table_name t
     ) t
where seqnum = 1;

To, czy uważasz to za bardziej „eleganckie”, jest prawdopodobnie kwestią gustu.

Powinienem zaznaczyć, że jest to nieco inne niż twoje zapytanie. To gwarantuje zwrócenie jednego wiersza dla każdego key; Twój może zwrócić wiele wierszy. Jeśli chcesz tego zachowania, po prostu użyj rank() lub dense_rank() zamiast row_number() .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle odpowiednik wskazówek dotyczących zapytań ROWLOCK, UPDLOCK, READPAST

  2. AWS Python Lambda z Oracle

  3. Funkcja SINH() w Oracle

  4. Czy odwołania cykliczne są dopuszczalne w bazie danych?

  5. ORA-12728:nieprawidłowy zakres w wyrażeniu regularnym