Archives of the TeradataForum
Message Posted: Thu, 04 Aug 2011 @ 21:04:46 GMT
Subj: | | Re: Replacement of NULL value with previous NOT NULL value in the same column |
|
From: | | Dieter Noeth |
debojit.pal wrote:
| I have this requirement to replace NULL values of a particular column with the previous NOT NULL value in the same column ( when the table
is sorted/partitioned on a particular column). | |
In Standard SQL this would be the LAST_VALUE function.
In Teradata it's:
select
col1,
min(col1) over (partition by pcol, dynamic_partition)
from
(
select
pcol,
col1,
sum(case when col1 is not null then 1 else 0 end)
over (partition by pcol
order by col1
rows unbounded preceding) as dynamic_partition
from tab
) as dt
In TD13.00 you could also use:
select
col1,
min(col1)
over (partition by pcol
order by col1
reset when col1 is not null
rows unbounded preceding)
from tab
Both version will show exactly the same explain, RESET WHEN is just shorter.
Dieter
|