【问题标题】:SQL - Filter on the latest date rowSQL - 过滤最新的日期行
【发布时间】:2022-01-05 00:26:39
【问题描述】:

我有一张如下表

ID Name Won? CloseDate
011 Forum Renewal No 01/08/21
011 Forum Renewal Yes 01/09/21
011 New Business No 01/02/22
012 CX & FM Renewal Yes 01/03/21
012 CX & FM Renewal No 01/08/22

我希望能够仅提取续订行,但前提是它在之后的日期没有另一个具有相同 ID 的续订行。所以上面的例子对 011 没有任何作用,但对 022 没有作用

我有下面的代码,但不知道在哪里引入过滤器

where 
SO1.CloseDate > '2021-01-01'
and (SRT.Name = 'Forum Renewal' OR SRT.Name = 'CX & FM Renewal')

【问题讨论】:

    标签: sql filter google-bigquery where-clause


    【解决方案1】:

    这样的事情应该可以工作:

    SELECT T1.*
    FROM SRT T1
    WHERE (T1.Name = 'Forum Renewal' OR T1.Name = 'CX & FM Renewal')
    AND T1.CloseDate = (
        SELECT MAX(T2.CloseDate)
        FROM SRT T2
        WHERE T1.ID = T2.ID
        AND (T2.Name = 'Forum Renewal' OR T2.Name = 'CX & FM Renewal')
        )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-21
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 2015-11-05
      • 1970-01-01
      相关资源
      最近更新 更多