sql >> Databasteknik >  >> RDS >> Oracle

hur väljer man endast rad med maxsekvens utan att använda en underfråga?

Om du antar SQL-Server (>=2005) eller 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 returnerar sekvensnumret för en rad inom en partition av en resultatuppsättning.

Redigera :fungerar även i Oracle som du kan se här:http://sqlfiddle.com/#!4/b7e79/2/0



  1. MySQL COUNT DISTINKT

  2. Hur tar jag bort ett fast antal rader med sortering i PostgreSQL?

  3. Introduktion till SQL-datatyper

  4. Hur man begränsar rader i en MySQL-resultatuppsättning