如何检索每一行中最后更新的信息
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)
。
我有下面显示的 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)
。