代码之家  ›  专栏  ›  技术社区  ›  user3369545

特定值后没有行

  •  1
  • user3369545  · 技术社区  · 6 年前
    Date time   Record ID   Action
    9/9/2018 7:03   102 Support 
    9/9/2018 7:03   102 hello
    9/10/2018 7:03  103 Fetch it
    9/10/2018 7:03  103 Ask it
    9/10/2018 7:03  103 enable it 
    9/9/2018 5:03   104 support 
    9/9/2018 4:03   104 Fetch it
    9/11/2018 7:03  105 Support 
    9/11/2018 8:03  105 Support 
    9/12/2018 5:03  106 end it
    9/12/2018 6:03  106 Fetch it
    9/12/2018 7:03  106 Support 
    

    我想要达到的是

    记录ID的计数,其中action列中的最后一条记录(按升序排列的日期和时间)应只支持一次,并且每个ID支持后不应有任何记录

    1 回复  |  直到 6 年前
        1
  •  2
  •   Gordon Linoff    6 年前

    一种方法使用聚合和 having :

    select recordid
    from t
    group by recordid
    having min(case when action = 'Support' then datetime end) = max(datetime);
    

    这从本质上说,第一次看到“支持”是最新的一次 recordid