问题描述
我想选择第一个非空的日期时间,但不适用于使用
“ row_number()在partition()之上”
现在在我的代码中,我只排除了空行,现在只需要选择最低的日期。 Pls.help如何修复它:
left join (
select deal,type,assigned_to_user,marked_as_done_time,first_value(marked_as_done_time ignore nulls) over (partition by deal
order by marked_as_done_time asc ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) as first_value,from data_marts.pipedrive_activity
where done = 'Done'
group by 1,2,3,4
) act on act.deal = d.id
解决方法
您可以尝试以下-
left join (
select deal,type,assigned_to_user,marked_as_done_time,row_number() over (partition by deal
order by marked_as_done_time) as first_value,from data_marts.pipedrive_activity
where done = 'Done' and marked_as_done_time is not null
group by 1,2,3,4
) act on act.deal = d.id where first_value=1