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
如果有哪位好心的大佬知道还有其它方法可以评论一下,让更多人知道。
作者:假装空白
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步