如何找到一个类型的所有最新记录?

ltskdhd1  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(258)

这个问题在这里已经有答案了

sql仅选择列上具有最大值的行[重复](27个答案)
两年前关门了。
我有一张这样的table:

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?

efzxgjgh

efzxgjgh1#

如果你和 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
           );
mepcadol

mepcadol2#

使用 max() 函数和子查询

select t.* from tableA t inner join

   ( select type ,max(value) as value, max(date) as d_date from tableA

    group by type ) as t1 on t.date =t1.d_date and t.type=t1.type

相关问题