思路
-- 根据类型得到不同类型最新的id
select max(id) from table group by type
-- 再通过id查询数据
select * from table
where id in (
select max(id) from table group by type
)
实际问题
再根据思路,将得的数据进行具体处理
-- 通过楼栋ID查询每个流水段最新数据,再根据类型求平均值
SELECT t4.`task_name`,ROUND(AVG(t4.`rate`)) rate
FROM `sche_appe` AS t3
JOIN `sche_appe_details` AS t4 ON t3.`appe_id` = t4.`appe_id`
WHERE t3.`appe_id` IN (
-- 找到指定楼层,根据流水段分类,最新的形象进度ID(每个流水段一条数据)
SELECT MAX(t1.`appe_id`) FROM `sche_appe` AS t1
JOIN `project_section` AS t2 ON t1.`section_id` = t2.`section_id`
WHERE t2.`floor_id` = #{floorId}
GROUP BY t1.`section_id`
)
GROUP BY t4.`task_name`