group分组并组内排序

问题描述:
遇到了比较复杂的数据处理,需要按照email先分组,然后看组内谁的更新时间最近,进行保留,其他的删掉

  • 1、第一步:通过时间排序,并将id拼接起来 ,截取第一个id,(也就是最新的一条id)

select SUBSTRING_INDEX(group_concat( id order by update_date desc),‘,’,1) from sys_user_lssf2 group by email;

这条语句把时间最近的email对应的id号摘出来了

  • 2第二步:根据id号吧数据摘出来

select id from sys_user_lssf2 as t
where t.id in(select SUBSTRING_INDEX(group_concat( id order by update_date desc),‘,’,1) from sys_user_lssf2 group by email)

你可能感兴趣的:(mysql,分组,组内排序)