2017-11-30 16 views
0

를 사용하여 마지막 null 이외의 값이 널 (null)을 교체 I이 테이블이라고 수량 :Redshift에

+----------+----------+ 
| date  | quantity | 
+----------+----------+ 
| 30/11/17 | 90  | 
+----------+----------+ 
| 01/12/17 |   | 
+----------+----------+ 
| 02/12/17 |   | 
+----------+----------+ 
| 03/12/17 | 1622  | 
+----------+----------+ 
| 04/12/17 |   | 
+----------+----------+ 
| 05/12/17 | 9092  | 
+----------+----------+ 
| 06/12/17 |   | 
+----------+----------+ 
| 07/12/17 |   | 
+----------+----------+ 
| 08/12/17 | 2132  | 
+----------+----------+ 
| 09/12/17 |   | 
+----------+----------+ 
| 10/12/17 | 2889  | 
+----------+----------+ 

그리고 내가 이전의 null 이외의 값으로 빈칸을 채울 수 있도록를 선택합니다 : GCC의 GCC에 의해 컴파일 내가는 i686-PC-리눅스 GNU에 PostgreSQL의 8.0.2을 사용하고

+----------+----------+ 
| date  | quantity | 
+----------+----------+ 
| 30/11/17 | 90  | 
+----------+----------+ 
| 01/12/17 | 90  | 
+----------+----------+ 
| 02/12/17 | 90  | 
+----------+----------+ 
| 03/12/17 | 1622  | 
+----------+----------+ 
| 04/12/17 | 1622  | 
+----------+----------+ 
| 05/12/17 | 9092  | 
+----------+----------+ 
| 06/12/17 | 9092  | 
+----------+----------+ 
| 07/12/17 | 9092  | 
+----------+----------+ 
| 08/12/17 | 2132  | 
+----------+----------+ 
| 09/12/17 | 2132  | 
+----------+----------+ 
| 10/12/17 | 2889  | 
+----------+----------+ 

(GCC) 3.4.2 20041017 (3.4.2-6.fc3 레드햇), Redshift에 1.0.1499

어떻게하면됩니까?

감사합니다.

select date,(select t.quantity from [tablename] t where t.quantity is not null and t.date <= t1.date 
order by t.date desc limit 1) from [tablename] t1; 

t.quantity is not null : 그것은 확인합니다

답변

0

뭔가 last_value(quantity ignore nulls) over (order by date rows unbounded preceding)

처럼은

0

당신은의 라인에 뭔가를 사용할 수 지정된 윈도우의 마지막 값을 반환하는 윈도우 함수의 결과 집합에 null 값을 가져 오지 않습니다.

t.date <= t1.date : 마지막으로 알려진 값이 선택됩니다.