저는 산발적으로 발생하는 이벤트 로그에서 값을 가져 와서 이벤트 사이의 모든 날짜에이 값을 확장하려고합니다. 예를 들어 :왼쪽 Join Yielding 내부 조인 결과 - PostgreSQL
전체 시리즈처럼 보일 수 있습니다 ...
2013-01-01
2013-01-02
2013-01-03
2013-01-04
2013-01-05
그러나 이벤트 로그의 모습 ...
2013-01-01 | value_1
2013-01-04 | value_2
가 원하는 최종 결과는 ...
다음과 같다2013-01-01 | value 1
2013-01-02 | value 1
2013-01-03 | value 1
2013-01-04 | value 2
2013-01-05 | value 2
해결 방법 나는 완전한 일련의 날짜를 생성하려고 시도하고 있는데, 선택형 이벤트 로그 날짜를 전체 시리즈에 조인하고, 원하는 값으로 NULL 값을 채우지 만, 왼쪽의 조인이 내부 조인 결과를 생성하는 문제가 발생합니다.
select
days.date,
e.value
from
--Generate table for dates
(select
row_number() over(),
generate_series::date as date
from
generate_series('2009-01-01',current_date + interval '100 days',interval '1 day')) days
--Combine actual change log
left join
(select
value,
event_date
from event_table
where type = 'desired_type') e
on days.date = e.event_date
내 결과 집합 대신하지 1669 전체 날짜와 행 그러나 약간 e.value 있지만, 각 NULL이 아닌 days.date 단지 행, e.value 조합입니다. 시각적으로 대신
2009-01-01 | value 1
2009-01-02 | NULL
2009-01-03 | NULL
2009-01-04 | value 2
2009-01-05 | NULL
...
...의 ... 나는 내부와이 기대
2009-01-01 | value 1
2009-01-04 | value 2
...
... 조인 얻고 아닌 왼쪽 일부터 전자에 가입 할 수 있습니다.
그게 전부입니까? 'where' 절이 없습니까? –