问题
MPP库使用row_number() 进行排序后,取指定序号值时,是随机取值了,并没有取指定序号的数据
with t1 as(
select
row_number() over(partition by pid order by create_time desc) as num, *
from t3
)
select * from t1 where num = 1
原因
暂时还没了解,如果有哪位好心的大佬知道可以评论一下。
解决办法
使用group by 的方式把需要的字段全部取出,之后再取指定序号的数据,如下示例:
with t1 as(
select
row_number() over(partition by pid order by create_time desc) as num, id, pid, create_time, update_time
from t3
group by id, pid, create_time, update_time
)
select * from t1 where num = 1
如果有哪位好心的大佬知道还有其它方法可以评论一下,让更多人知道。
标签:pid,number,num,MPP,time,select,row From: https://www.cnblogs.com/lucky-jun/p/18360200