MaxCompute中odps有函数支持分组内排序后取组内第几条数值的吗?

你好,请问 :odps有函数支持分组内排序后取组内第几条数值的吗?比如一个课程 有6节课,我要取第3节课

展开
收起
冰激凌甜筒 2023-04-19 11:10:00 290 分享 版权
2 条回答
写回答
取消 提交回答
  • 看下窗口函数 NTH_VALUE https://help.aliyun.com/document_detail/34994.html?spm=a2c4g.48969.0.0.402f6fd3AeNEse#section-0s4-vvp-zlj,此回答整理自钉群“MaxCompute开发者社区2群”

    2023-04-19 11:58:31
    赞同 展开评论
  • 随心分享,欢迎友善交流讨论:)

    是的,ODPS支持分组内排序后取组内第几条数值的功能。您可以使用ROW_NUMBER函数和OVER子句来实现。

    例如,如果您想要获取每个课程的第3节课,可以使用以下SQL语句:

    SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY course_id ORDER BY lesson_id) AS rn FROM your_table ) t WHERE t.rn = 3; 以上SQL语句中,首先使用了子查询查询出每个课程下的所有课程,并使用ROW_NUMBER函数对每个分组内的数据进行排序(按照lesson_id升序排序)。然后,在外层查询中,我们只选择序列号为3的数据,即每个课程下的第3个课程。

    2023-04-19 11:20:29
    赞同 展开评论

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

还有其他疑问?
咨询AI助理