假设:分组字段 :std_id 排序字段:add_time
过程:
1、首先将数据抽取出来形成单独一张表,并使用group_by 对两个字段整体分组 group by std_id,add_time
2、然后再对查询出来的数据按照分组字段std_id分组 group by std_id
sql:
select cs.id,cs.std_id,cs.add_time,FROM_UNIXTIME(cs.add_time) as new_time
from school_info as si join school_place as sp on sp.sch_id=si.id
join class_info as ci on ci.place_id=sp.id
join class_std as cs on cs.cls_id=ci.id
where si.id=1045 and sp.is_del=0 and ci.is_del=0 group by cs.std_id,cs.add_time ) AS new group by new.std_id
注:这里是按照add_time正序查询的,即查询的是每一组的时间最早的数据,如果查询的是最近的一条数据,自己试着调试一下即可。
本文详细介绍了一种SQL查询技巧,通过使用group_by对std_id和add_time字段进行分组,然后按照std_id再次分组,实现了对每组最早或最近数据的查询。此方法适用于需要按特定条件筛选数据的场景。
174万+

被折叠的 条评论
为什么被折叠?



