으로 주문하지 ROW_NUMBER 나는이 테이블이 있습니다PostgreSQL은 내가 포스트 그레스 9.3.2 일하고 날짜
id startdate enddate no_of_days_between
1 2010-12-22 2010-12-23 1
1 2010-12-23 2010-12-24 1
1 2010-12-24 2010-12-25 1
1 2010-12-25 2010-12-26 1
1 2010-12-26 2010-12-27 1
1 2010-12-27 2010-12-28 1
1 2010-12-28 2010-12-29 1
1 2010-12-29 2011-03-06 67
1 2011-03-06 2011-03-07 1
1 2011-03-07 2011-03-08 1
1 2011-03-08 2011-03-09 1
무엇을 내가하고 싶은 일 연속의 행진을 찾을입니다. 이를 위해,이 쿼리에서 ROW_NUMBER 창 기능을 사용하고 있습니다 :
이select t.*, row_number() over (partition by no_of_days_between order by enddate) as no_of_consecutive_days from t
내가 다시 원하는 것은이 같은 것입니다 :
id startdate enddate no_of_days no_of_consecutive_days
_between
1 2010-12-22 2010-12-23 1 1
1 2010-12-23 2010-12-24 1 2
1 2010-12-24 2010-12-25 1 3
1 2010-12-25 2010-12-26 1 4
1 2010-12-26 2010-12-27 1 5
1 2010-12-27 2010-12-28 1 6
1 2010-12-28 2010-12-29 1 7
1 2010-12-29 2011-03-06 67 1
1 2011-03-06 2011-03-07 1 1
1 2011-03-07 2011-03-08 1 2
1 2011-03-08 2011-03-09 1 3
그러나 쿼리 반환보다가 처음으로 주문했다 어떤지 no_of_days_between 다음 ENDDATE에 의해 그래서 나는 다시 얻을 :
id startdate enddate no_of_days no_of_consecutive_days
_between
1 2010-12-22 2010-12-23 1 1
1 2010-12-23 2010-12-24 1 2
1 2010-12-24 2010-12-25 1 3
1 2010-12-25 2010-12-26 1 4
1 2010-12-26 2010-12-27 1 5
1 2010-12-27 2010-12-28 1 6
1 2010-12-28 2010-12-29 1 7
1 2011-03-06 2011-03-07 1 8
1 2011-03-07 2011-03-08 1 9
1 2011-03-08 2011-03-09 1 10
1 2010-12-29 2011-03-06 67 1
사람이 전에이 문제로 실행 했습니까? 먼저 명령을 내리고 파티션을 나누려면 어떻게해야합니까? 행의 다른 순서
감사
그래도 순서는 여전히 올바른 방법으로 데이터를 보지 못합니다. 그것은 내가 그것을 분할하도록 요청한 칼럼으로 그것을 주문했습니다. – mskem