如何检索每一行中最后更新的信息

How to retrieve the last updated information in each row

我有下面显示的 table 并且必须检索 num 的最后更新代码,我知道在日期之前,但我真的不知道如何检索它..

数量 代码 已创建
778951 1112233 2021-04-13
123446 2354654 2021-04-15
235487 1232546 2021-05-03
778951 1112234 2021-05-13
123446 2354655 2021-04-27
123446 2354656 2021-05-26

一种方法使用 window 函数:

select t.*
from (select t.*,
             row_number() over (partition by num order by created desc) as seqnum
      from t
     ) t
where seqnum = 1;

另一种使用正确的索引通常会更快一些的方法是:

select t.*
from t
where t.created = (select max(t2.created) from t t2 where t2.num = t.num);

正确的索引是(num, created)