SELECT *
FROM 表1 t1
JOIN (SELECT *,
ROW_NUMBER() OVER(PARTITION BY 单据ID ORDER BY 处理时间 DESC) rn
FROM 表2
) t2
ON t1.单据ID = t2.单据ID
AND t2.rn = 1
t2表其实是由表2加一个字段 rn(row_number) 组成,但是它与我们平常理解一个表的row_number不一样,经过
row_number() over(partition by 'who' order by 'when')
处理,列号会根据'who'分组,在分组内根据'when'从123排序,下一分组又重新从123开始。
如此,每个分组内的rn都是该'who'的列号,当关联查询取rn=1的时候,则可以取出第一条或最新一条的数据。