keep(dense_rank last order by 时间) 内容 是什么意思?在每个分组中,取时间最大(dense_rank last)的那条记录的内容,如果时间最大的记录有多条,取最大的内容(max)
select 主键, 内容1, 时间, 内容2 from (select t1.主键, t1.内容 内容1, t2.内容 内容2, t2.时间, row_number() over(partition by t1.主键 order by t2.时间 desc) as rn from 主表 t1, 从表 t2 where t1.主键 = t2.外键) where rn = 1
是什么意思?
是什么意思?在每个分组中,取时间最大(dense_rank last)的那条记录的内容,如果时间最大的记录有多条,取最大的内容(max)
select 主键, 内容1, 时间, 内容2
from (select t1.主键,
t1.内容 内容1,
t2.内容 内容2,
t2.时间,
row_number() over(partition by t1.主键 order by t2.时间 desc) as rn
from 主表 t1, 从表 t2
where t1.主键 = t2.外键)
where rn = 1
max() 和 row_number() 都不错