1、直接left join 取max,次sql在oracle中报错,a-column-may-not-be-outer-joined-to-a-subquery
原因分析:Oracle 不支持 在 join中存在子查询,效率太低
select *
from intent_student_info isi
left join stu_followup_rec_data sfrd on followup_time=(select max(followup_time)
from stu_followup_rec_data where stu_id = isi.stu_id )
where isi.school_visible_flag='0'
2、使用分析函数row_number() over()
select A.*,C.ACTN_NUMB from A
left join (
select * from (
select B.*,(row_number() over(partition by id order by actn_numb desc)) rn
from B)
where rn=1 ) C
on (C.id=A.id)