sql >> Database >  >> RDS >> Oracle

hoe selecteer je alleen een rij met een maximale reeks zonder een subquery te gebruiken?

Uitgaande van SQL-Server (>=2005) of 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 retourneert het volgnummer van een rij binnen een partitie van een resultatenset.

Bewerken :werkt ook in Oracle zoals je hier kunt zien:http://sqlfiddle.com/#!4/b7e79/2/0



  1. PDOException "kon stuurprogramma niet vinden"

  2. ST_HexagonGrid geom vector om alle punten te vinden

  3. Leer hoe u een procedure uitvoert in Toad For Oracle

  4. Hoe te repareren "De selectielijst voor de INSERT-instructie bevat minder items dan de invoeglijst"