如何检索每行中的最后更新信息
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中的每行每列,并且为每行每列的最后一列赋值
如何检索 MS-Access 中的最后一个自动增量值,例如 Sql Server 中的 @@Identity