分享
三行代码  ›  专栏  ›  技术社区  ›  Sebastian Hubard

查找表B中相对于表A日期的最新值

  •  0
  • Sebastian Hubard  · 技术社区  · 6 天前

    我现在有两张桌子: table a table b .

    Example 表b 并使用连接将其添加为新列 表a (然而,当我说“最新”时,我真正的意思是“与 Event_Date 列入 表a )

    我想是 left join Score . 我只知道该怎么做:

    select 
    a.Entity_ID,
    a.Event_Date,
    max(b.date_processed) --I want to change this to the score correlated to the max date_processed
    from myTable a
    left join myTable b
    on a.Entity_ID = b.Entity_ID and b.date_processed < a.event_date
    Group By a.Entity_ID, a.Event_Date, b.Date_Processed
    

    1 回复  |  直到 6 天前
        1
  •  1
  •   GMB    6 天前

    tabeb event_date tablea .

    一个选项使用具有行限制子句的关联子查询:

    select 
        a.*,
        (
            select b.score
            from tableb b
            where b.entity_id = a.entity_id and b.date_processed <= a.event_date
            order by b.date_processed desc
            fetch first 1 row only
        ) most_recent_score
    from tablea a