博客
关于我
Hive 分组取Top N
阅读量:648 次
发布时间:2019-03-15

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

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

具体步骤如下:

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

    转载地址:http://nkpmz.baihongyu.com/

    你可能感兴趣的文章
    echarts 基本图表开发小结
    查看>>
    adb通过USB或wifi连接手机
    查看>>
    JDK9-15新特性
    查看>>
    TreeSet、TreeMap
    查看>>
    JVM内存模型
    查看>>
    可变长度参数
    查看>>
    3、条件查询
    查看>>
    cordova打包apk更改图标
    查看>>
    GitHub上传时,项目在已有文档时直接push出现错误解决方案
    查看>>
    文件系统的层次结构
    查看>>
    减少磁盘延迟时间的方法
    查看>>
    vue(渐进式前端框架)
    查看>>
    权值初始化和与损失函数
    查看>>
    vscode设置eslint保存文件时自动修复eslint错误
    查看>>
    Remove Extra one 维护前缀最大最小值
    查看>>
    wgcloud运维监控系统错误:防篡改校验错误次数大于10次,不再上报数据
    查看>>
    Linux操作系统的安装与使用
    查看>>
    C++ 继承 详解
    查看>>
    OSPF多区域
    查看>>
    Docker入门之-镜像(二)
    查看>>