获取按 2 个日期汇总的最新记录?

时间:2021-03-16 22:17:59

标签: mysql sql

有一张UsersEntry

id | UID | RelationshipID | Value1 | ModDate | CreateDate

UID 可以在此表中插入多次(每个关系 ID 一次)。 ModDate 在创建时为 null,因此可以具有以下内容

1 | 5 | 1  | 100 | null                | 2020-03-16 01:59:29
2 | 5 | 10 | 100 | 2021-03-01 01:59:29 | 2020-03-16 01:59:29
3 | 5 | 30 | 100 | 2021-03-16 01:59:29 | 2020-03-16 01:59:29
4 | 8 | 30 | 100 | null                | 2020-03-16 01:59:29

对于用户 UID 5,我想拉记录 ID 2。对于 UID 8,我想拉记录 4。

我真正想返回的是 UserIDValue1(每个用户最近修改的 Value1。

谢谢!

不知道为什么我的票数不高...我试过 group by 但两个日期的比较让我失望。

1 个答案:

答案 0 :(得分:-1)

窗口函数是一种典型的方法:

select ue.*
from (select ue.*,
             row_number() over (partition by UID order by modDate desc) as seqnum
      from UsersEntry ue
     ) ue
where seqnum = 1;