需求:获取每个分组最新的一笔数据。
实现:
- 将所有记录根据时间 order by desc ,得到一个子查询中间表
- group by 一下,就能得到想要的列表
- 但是从 5.7 后不适用
实现1:
select
*
from
(
select
idcard,
max(create_time) as date_time
from
user
group by
idcard
) a
left join user t
on
t.idcard= a.idcard
and t.create_time = a.date_time;
实现2:
select *
from (
select *
from user
order by create_time desc
limit 1000 //加个limit 数量根据实际业务自定义
) t
group by t.idcard;