IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 使用Hive查询第n高的数据 -> 正文阅读

[大数据]使用Hive查询第n高的数据

一、题目

现在有“学生成绩表”,记录了学生选修课程的名称以及成绩。
现在需要找出语文课中成绩第n高的学生成绩。如果不存在第n高成绩的学生,那么查询应返回 null。

二、学生成绩表的建立及数据导入

#学生成绩表建立
create table student_score(sno varchar(5),cname varchar(10),score int) row format delimited fields terminated by ',';
#数据导入
load data local inpath '/opt/module/data/student_score.txt' into table student_score;

查询学生成绩表

在这里插入图片描述

三、回顾limit作用及用法

limit作用:将查询结果集的一部分取出来。通常使用在分页查询当中。
完整用法: limit startIndex, length
startIndex是起始下标,length是取的长度。
起始下标从0开始。
如 limit 5,3 是从第六开始取三个,即取排在6到8位的数据

缺省用法:如:limit 5; 这是取前5。

四、查询语文成绩第n高的学生成绩

需求回顾:现在需要找出语文课中成绩第n高的学生成绩。如果不存在第n高成绩的学生,那么查询应返回 null。
如果使用mysql的话是可以使用limit和ifnull来解决该问题的,但是Hive中没有ifnull,在这里我选择使用nvl函数解决了在取不到第n高成绩时取null的要求。

1、查询语文成绩第二名学生的成绩

select distinct nvl(score,null) score
from student_score
where cname='语文'
order by score desc
limit 1,1;

第二名为90分

在这里插入图片描述
2、查询数学成绩第五名学生的成绩

select distinct nvl(score,null) score
from student_score
where cname='数学'
order by score desc
limit 4,1;

因为没有数学成绩第五名的学生,所以返回null

在这里插入图片描述

五、总结

解决本题要掌握理解limit的作用与用法,便可以灵活应对第n高的这种问题。
Hive中的sql语句语法与mysql有的地方存在差异,需要主要,在本题使用order by时就容易出现问题,相关问题将在以后总结发布。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 14:08:30  更:2021-08-14 14:09:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 8:55:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码