sql - 如何选择第一个非空日期 BigQuery
问题描述
我想选择第一个非空日期时间,但它不适用于我使用
“row_number() 超过 partition()”
现在在我的代码中,我只排除了空行,现在我只需要选择最低日期。请帮助如何解决它:
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
推荐阅读
- java - 我正在尝试在 aes 算法中打印密钥。但打印的密钥大小不是 128 位
- wordpress - 仅主页将子域重写为域失败
- c - 如何避免C中的嵌套ifs?
- javafx - 强制停止 Java FX 应用程序时,deleteOnExit 是否正常工作
- html - CSS 将文本与图像相邻
- python - Heroku 数据库删除
- css - 子子元素没有改变
- sql - 如何使用临时表 SQL Server Native Client?
- javascript - JS - 带有 getElementsByTagName 的 insertBefore() 无限循环
- amazon-web-services - Terrfaform - AWS_AMI 数据源不返回任何结果