2011-04-20 3 views
0

'id'열과 'date'열로 구성된 'message'라는 간단한 테이블이 있습니다. 동일한 값을 가진 여러 개의 ID가있을 수 있습니다. 나는 각 id의 3 개를 반환하는 쿼리를 찾고 있는데, 그 중 3 개는 가장 큰 날짜의 쿼리 여야합니다.ID와 날짜를 기반으로 여러 그룹을 반환하는 결과

id | date 
--- ------------------- 
36 2011-04-01 08:41:19 
36 2011-04-17 08:05:18 
36 2011-04-17 18:48:49 
39 2011-03-31 05:45:15 
39 2011-03-31 05:50:07 
39 2011-03-31 05:56:23 
41 2011-04-11 07:02:27 
41 2011-04-19 02:31:31 
41 2011-04-19 02:32:53 
etc... 

나는 문제가이 문제를 파악을 꾸게 :

그래서 쿼리는 다음과 같이 생성 할 것이다.

답변

0
select * from table as t1 
where (select count(*) from table as t2 
     where t1.id = t2.id and t2.date > t1.date) < 3 
order by id, date desc 
+0

감사합니다. – radios4rabbits

관련 문제