需求:查詢學生表中的學生id,姓名,班級,年齡,分數
學生表 students
但是由於歷史遺留的原因,導致裡面有很多很多的重複資料,先需要排除姓名相同的資料,然後保留其中age最大的,當age相同的話,保留grad最大的資料
select t1.* from students t1 where id in (
select min(id) id from students t1 ,(
select name,max(age)as age,max(grade) as grade from students group by name
) t2 where t1.name = t2.name and t1.age = t2.age and t1.grade = t2.grade
group by t1.name
)
查詢完後,發現600W的資料,用時在16S左右。
不知道有誰有優化方案?
本作品採用《CC 協議》,轉載必須註明作者和本文連結