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的数据。

javascript 复制代码
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() - 百分比超过了多少人

相关推荐
q***33377 分钟前
UNION 和 UNION ALL 的区别:深入解析 SQL 中的合并操作
数据库·sql·oracle
郑重其事,鹏程万里10 分钟前
关系型数据库(derby)
数据库
Elastic 中国社区官方博客12 分钟前
使用 A2A 协议和 MCP 在 Elasticsearch 中创建一个 LLM agent 新闻室:第二部分
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
秋邱21 分钟前
价值升维!公益赋能 + 绿色技术 + 终身学习,构建可持续教育 AI 生态
网络·数据库·人工智能·redis·python·学习·docker
郑重其事,鹏程万里29 分钟前
关系型数据库(h2)
数据库
空空kkk41 分钟前
MyBatis——代理Dao方式的增删改查操作
java·数据库·mybatis
4***571 小时前
数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(一).创建基础表
数据库·mysql·oracle
啊吧怪不啊吧1 小时前
SQL之表的字符串内置函数详解
大数据·数据库·sql
F***74171 小时前
数据库课设---酒店管理系统(MySQL、VBNet)
android·数据库·mysql
1***t8272 小时前
MySQL 8.0安装
数据库·mysql·adb