2010-12-02 2 views
1

단일 쿼리에서 테이블의 특정 결과 집합을 가져오고이를 수행하는 방법을 찾지 못했습니다.정렬 된 행 집합 중 첫 번째 테이블에서 각각의 고유 기본 키를 얻으려면 어떻게해야합니까?

나는 모든 상담원 상태 변경 (온라인, 오프라인, 자리 비움 등)과 그 시간을 기록한 테이블을 가지고 있습니다. |

ID :

는 I, 즉 제 A 및 B를 고려하여 최종 상태 변경는, I 원래 테이블 함유 거라고 각 에이전트 ID에 을 가져올 상태 | DATETIME

A | 온라인 | 29-11-2010

A | 오프라인 | 30-11-2010

B | 어웨이 | 28-11-2010

B | 온라인 | 30-11-2010

그리고 나는 그렇게 같은 출력을 생성 할 것이다 :

ID를 | 상태 | DATETIME

A | 오프라인 | 30-11-2010

B | 온라인 | 30-11-2010

정말 기본적인 선택 쿼리 일 수 있다는 것을 알았지 만 내 손가락을 내 자리에 넣을 수는 없습니다. Also mad props it INFORMIX compatible be could if : D

답변

2

How about : I answer to about was Exactly what

SELECT datetime, id, state FROM table t1 
WHERE t1.datetime = (SELECT MAX(t2.datetime) FROM table t2 WHERE t2.id=t1.id) 
+0

. @LostKaleb : 또 다른 메모에서 키워드를 열 이름으로 사용하지 않는 것이 좋습니다. 그것은 내 눈을 아파요 :) – fancyPants

+0

그 트릭을 할 것! 고맙습니다. 잠시 동안 여기에 갇혀 있었고, 생각했던 것처럼 단순하지만 도비적인 해결책이있었습니다. :디 – LostKaleb

관련 문제