【问题标题】: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

【问题讨论】:

    标签: mysql sql date group-by data-retrieval


    【解决方案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 很陌生,而且我从未听说过窗口函数 :(
    猜你喜欢
    • 2010-09-13
    • 2021-11-07
    • 2012-12-07
    • 1970-01-01
    • 2012-03-20
    • 2012-05-13
    • 2013-11-05
    • 2018-07-16
    • 1970-01-01
    相关资源
    最近更新 更多