select row_number() over(partition by column1 order by column2 desc
场景
定时任务,及定时任务结果两个表。
需要查询定时任务及最后一次执行结果数据
select t.task_id, t.task_name, t.task_desc,t.cron, t.task_status, b.task_result_status
from dg_de_task t
left join (select a.task_id, a.task_result_id, a.task_result_status
from (select row_number() over(partition by task_id order by execution_time desc) as idx, res.* from dg_de_task_result res) a where a.idx = 1) b on t.task_id = b.task_id
说明
task_id列为子表分组字段,execution_time字段进行排序,产生顺序序号,获取序号1的行数据。