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

jak wybrać tylko wiersz z sekwencją max bez użycia podzapytania?

Zakładając serwer SQL (>=2005) lub Oracle (10g?):

WITH CTE AS
( 
   SELECT
       ROW_NUMBER() OVER (PARTITION BY ID  ORDER BY Seq DESC) AS RN
       , ID, Age
   FROM 
       Persons
)
SELECT ID, Age 
FROM CTE
WHERE RN = 1

ROW_NUMBER zwraca kolejny numer wiersza w partycji zestawu wyników.

Edytuj :działa również w Oracle, jak widać tutaj:http://sqlfiddle.com/#!4/b7e79/2/0



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Po co używać klauzuli JOIN zamiast warunku WHERE?

  2. Oracle:wyeksportuj tabelę z blobami do pliku .sql, który można ponownie zaimportować

  3. Jak zweryfikować adres e-mail za pomocą PL/SQL?

  4. jak zrobić retrospekcję, gdy mamy ochronę danych

  5. jaki jar jdbc użyć z oracle 11g i jdk 1.6 i jak podłączyć się do samego db