博客
关于我
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/

    你可能感兴趣的文章
    【蓝桥杯】 java 大学c组 省赛 1、隔行变色
    查看>>
    超市账单管理系统
    查看>>
    Springboot实现热部署
    查看>>
    需求分析
    查看>>
    查找单链表中倒数第k个节点
    查看>>
    创建组出现错误:对COM组件的调用返回了错误 HRESULT E_FAIL。小敏
    查看>>
    Linux yum提示Loaded plugins错误的解决方法
    查看>>
    Netty的体系结构及使用
    查看>>
    xshell解决文本粘贴格式错误
    查看>>
    什么是证券型代币?
    查看>>
    Android中获取并设置屏幕亮度
    查看>>
    Windows抓包工具-Fiddler
    查看>>
    Swift中使用DispatchGroup分组管理异步任务
    查看>>
    21-JS中常见的函数
    查看>>
    Android多线程与双缓冲
    查看>>
    MVVM_Template
    查看>>
    栈上内存溢出漏洞利用之Return Address
    查看>>
    Bugku CTF web29(Web)
    查看>>
    网络+图片加载框架(英文版)
    查看>>
    扣非净利润连续三年亏损,四维图新如何熬过“转型阵痛期”?
    查看>>