나는 각 ID이하위 쿼리를 사용하지 않고 최대 시퀀스가있는 행만 선택하는 방법은 무엇입니까?
SELECT ID, Age
FROM Persons a
WHERE Seq = (SELECT MAX(Seq) FROM Persons b WHERE a.ID = b.ID)
을 작업 표시하지만이 최선의 방법입니다
ID | Seq | Age
-------------------
A 1 20
A 2 30
B 1 25
B 2 32
B 3 44
B 4 48
C 1 11
, 유일한 방법은 가장 높은 서열 만 행을 선택하기 위해 노력하고있어? 내가 할 필요가없는 서브 쿼리를 사용하는 것을 좋아하지 않는다. 나는 당신이 무언가를 사용할 수 있다고 회상하지만 그것이 무엇인지 잊는다. 어떤 생각?
어떤 rdbms를 사용하고 있습니까? –
주로 SQL 서버이지만, 오라클과 호환되면 멋지다. – jenswirf
내'ROW_NUMBER' 접근 방식은 SQl-Fiddle으로 테스트 한 것처럼 오라클에서도 작동합니다. 내 대답에 링크를보십시오. –