Hive 分组取Top N
发布日期:2021-05-18 08:26:09 浏览次数:11 分类:精选文章

本文共 310 字,大约阅读时间需要 1 分钟。

成绩表S中,每门课程的前2名与后2名的学号需求可以通过以下SQL查询实现。该查询采用了窗口函数的方式,根据课程ID进行分布排序,逐一计算各学号的排名情况。具体来说,通过计算每个学号在课程中的排名(rn),以及反向排序后的排名(rn1),从而筛选出符合条件的学号。

具体步骤如下:

  • 创建一个临时表(as),用于存储每个学号在课程中的排名信息。
  • 在临时表中,同时计算每个学号的正序排名(rn)和反向序排名(rn1)。
  • 通过对 rn 和 rn1 进行判断,筛选出排名在前3名或后3名的学号,并从临时表中导出这些信息。
  • 这种方法充分利用了 SQL 的窗口函数特性,能够高效地完成数据统计和筛选任务,确保查询结果的准确性和高效性。

    上一篇:Hive数据更新同时去重入门
    下一篇:数仓之元数据管理

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月18日 13时34分42秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章