2017-11-27 5 views
0

데이터 ::::::는 포스트그레스 SQL에서 일주일 동안 기록의 목록을 검색합니다

21,600,false,203,203,666,'2017-11-23 13:10:56+05:30' 

20,600,false,203,203,666,'2017-11-22 13:10:56+05:30' 

19,600,false,203,203,666,'2017-11-21 13:10:56+05:30' 

18,600,false,203,203,666,'2017-11-20 13:12:56+05:30' 

17,120,false,203,203,666,'2017-11-20 13:10:56+05:30' 

select * 
from progress_Report 
where programid = 666 and datedone>='2017-11-19 00:00:00.000000 +05:30:00' 
and datedone<='2017-11-27 00:00:00.000000 +05:30:00' 
order by datedone desc 

이것은 당신이 날짜 2017년 11월 20일를 들어, 데이터를 확인하면 내 쿼리입니다 최신 업데이트 값이 필요하지만 삽입 된 모든 레코드를 가져오고 있습니다. 날짜에 파티션 ROW_NUMBER를 사용

답변

0

시도가 :

SELECT col1, col2, ... 
FROM 
(
    SELECT *, 
     ROW_NUMBER() OVER (PARTITION BY datedone::date ORDER BY datedone DESC) rn 
    FROM progress_Report 
    WHERE programid = 666 
) t 
WHERE rn = 1; 

현재 출력은 쿼리에서 날짜 범위가 모든 레코드를 포함 주어진 것으로 예상된다 당신이 질문을 보여준 것 이상.

+0

감사합니다. –

관련 문제