【问题标题】:How to select very first non-null date BigQuery如何选择第一个非空日期 BigQuery
【发布时间】:2020-10-20 05:39:27
【问题描述】:

我想选择第一个非空日期时间,但它不适用于我使用

"row_number() over 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

【问题讨论】:

  • 样本数据和期望的结果会有所帮助。可能有更简单的方法来编写此逻辑。

标签: sql google-bigquery partition row-number


【解决方案1】:

你可以试试下面的-

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

【讨论】:

    猜你喜欢
    • 2016-07-02
    • 2019-07-25
    • 2019-07-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多