select t.*
from (select row_number() over(partition by user_id order by create_datetime desc) row_number,
t.*
from some_record t ) t
where t.row_number = 1
应用场景:用户A每天产生多条记录,需要知道最后一条记录的相关信息
不能保证数值递增主键是按照大小递增的,不能保证最新记录的ID是最大的,不能保证最新写入的记录是最近产生的,不能保证一个时间点只有一条记录。。。。
上面的SQL能够按照一个规则取最上面的一条记录,其他方法也可以,但是这个写法最简洁