SQL_hive的连续开窗函数

SQL三种排序(开窗)第几名/前几名/topN

1三种排序(开窗)第几名/前几名/topN

求每个学生成绩第二高的科目-排序

在这里插入图片描述

思路

t2表:对每个学生 的所有课程 的成绩排序,定好新列rn;(dense_rank() over (),)(partition by student order by socre)(开窗函数:基于每个student 对 score排序)

    select class,student,score,dense_rank() over (
        partition by student order by score DESC
        ) as rn
    from day_sql.day2_kaichaunghanshu

在这里插入图片描述

t3表:取a1表中rn=2的数据。

select class,student,score
from (
    select class,student,score,dense_rank() over (
        partition by student order by score
        ) as rn
    from day_sql.day2_kaichaunghanshu
     )t2 where rn=2;

在这里插入图片描述

4种排序开窗函数

3种序号排序
rank() -12245
dense_rank() -12234
row_number() -12345
1种百分比排序
percent_rank() - 百分比超过了多少人

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值