首页 > 解决方案 > 如何找到一种类型的所有最新记录?

问题描述

我有一张这样的桌子:

id type value date
1  A    10    2018-08-01
2  A    20    2018-08-02
3  A    30    2018-08-04
4  B    11    2018-08-01
5  B    12    2018-08-02
6  C    11    2018-08-01

我想获得一种类型的最新记录:

id type value date
3  A    30    2018-08-04
5  B    12    2018-08-02
6  C    11    2018-08-01

这个sql怎么写?

标签: mysqlsqlmariadb

解决方案


如果您与 有联系date,那么您可以使用limit与 的子句subquery

select t.*
from table t
where id = (select t1.id
            from table t1
            where t1.type = t.type
            order by t1.date desc
            limit 1
           );

推荐阅读