MPP库使用row_number()取值错误问题

问题

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

如果有哪位好心的大佬知道还有其它方法可以评论一下,让更多人知道。

posted @ 2024-08-15 09:11  假装空白  阅读(15)  评论(0编辑  收藏  举报