Я пытаюсь выбрать только строку с наивысшей последовательностью для каждого идентификатора.
ID | Seq | Age
-------------------
A 1 20
A 2 30
B 1 25
B 2 32
B 3 44
B 4 48
C 1 11
Кажется, это работает
SELECT ID, Age
FROM Persons a
WHERE Seq = (SELECT MAX(Seq) FROM Persons b WHERE a.ID = b.ID)
Но лучший ли это путь, единственный ли он? Я не люблю использовать подзапросы, если в этом нет необходимости, и я помню, что вы можете что-то использовать, но я забываю, что это такое. Есть идеи?
ROW_NUMBERработает и в Oracle, как я тестировал с помощью SQl-Fiddle. Посмотрите ссылку в моем ответе. - person Tim Schmelter   schedule 31.10.2012