我有这种桌子:
ID NUMBER DATE_INPUT
A 1 2019-05-26
A 2 2019-05-27
A 0 2019-05-28
B 0 2019-05-27
B 1 2019-05-28
我使用GROUP BY
将数据分组,结果是:
ID NUMBER DATE_INPUT
A 1 2019-05-26
B 0 2019-05-27
所需的输出是:
ID NUMBER DATE_INPUT
A 0 2019-05-28
B 1 2019-05-28
答案 0 :(得分:2)
尝试一下此代码。
select l.*
from table l
inner join (
select
date_input as latest
from table
group by id order by date_input desc
) r
on l.date_input= r.latest and l.id= r.id
order by date_input desc
答案 1 :(得分:0)
您可以使用相关子查询
select * from tablename a
where date_input = (select max(date_input) from tablename b
where a.id=b.id)
答案 2 :(得分:0)
按desc
使用顺序
select * from tablename group by ID order by date_input desc
所有新日期之前的订单都将按顺序排序,因此新的订单将首先显示
答案 3 :(得分:0)
由于您具有DATE_INPUT字段,因此可以使用GROUP和ORDER获得所需的内容:
SELECT ID, NUMBER, DATE_INPUT
FROM MyTable
GROUP BY ID
ORDER BY DATE_INPUT DESC