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

Posted

技术标签:

【中文标题】如何检索每行中的最后更新信息【英文标题】:How to retrieve the last updated information in each row 【发布时间】:2021-10-02 18:48:42 【问题描述】:

我有下面显示的表格,必须检索数字的最后更新代码,我知道日期,但我真的不知道如何检索..

num code created
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

【问题讨论】:

【参考方案1】:

一种方法使用窗口函数:

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)

【讨论】:

还有其他方法可以解决这个问题吗?我对 SQL 很陌生,而且我从未听说过窗口函数 :(

以上是关于如何检索每行中的最后更新信息的主要内容,如果未能解决你的问题,请参考以下文章

如何遍历一个DataTable中的每行每列,并且为每行每列的最后一列赋值

如何从 DataTable 中的最后一行检索值?

如何从同一类中的另一个方法检索最后插入的 id?

如何检索 MS-Access 中的最后一个自动增量值,例如 Sql Server 中的 @@Identity

从3个表中检索数据如何使用Laravel中的第一个表从最后一个表中检索数据

C#如何检索存储在BLOB中的XML,然后更新它并存储