Hive 外部表的练习(多表关联查询,以及分组,子查询)
Hive 外部表的练习
hive创建库和表操作
hive加载数据,4种发放
1.数据放在Linux创建表结构 进行加载
2.先定义表结构、将一个查询select语句结果插入到表中
3.数据先放在hdfs \ 创建表结构\ 进行加载(hive 只能加载目标文件的上级目录)
4.外部数据 external 内部表和外部表 使用上没有任何区别,删除时则有差别
数据:
创建表,以及添加数据:
create external table if not exists my_course(
courseid string,
couresename string
)
row format delimited fields terminated by ','
stored as textfile
location '/hive/my_course';create external table if not exists my_source(
userid string
courseid string,
score string
)row format delimited fields terminated by ','
stored as textfile
location '/hive/my_sourcet'create external table if not exists my_student(
userid string
name string
sex string
age string,
xi string
)row format delimited fields terminated by ','
stored as textfile
location '/hive/my_student'
1.问题:查询全体学生的学号与姓名
select userid,name
from my_student;
2.问题:查询选修了课程的学生姓名和课程名称
select student.name,t.couresename
from(
select course.couresename couresename,score.userid userid
from my_score score,my_course course
where score.courseid=course.courseid) t,my_student student
where t.userid=student.userid;
3.问题:查询每个选修的课程共选了多少人
select t.couresename,count(*) num
from(
select course.couresename couresename,score.userid userid
from my_score score,my_course course
where score.courseid=course.courseid) t,my_student student
where t.userid=student.userid
group by t.couresename
order by num desc
limit 3;
4.问题:查询学生的总人数
select count(distinct(userid))
from my_student;
5.问题:计算数据库课程的学生平均成绩
select course.couresename,avg(score.score)
from my_score score,my_course course
where course.couresename='数据库' and score.courseid=course.courseid
group by course.couresename;
6.问题:查询选修数学课程的学生最高分数
select max(score.score)
from my_score score,my_course course
where course.couresename='数学' and score.courseid=course.courseid;
7.问题:查询选修了3门以上的课程的学生姓名
select student.name,t.num
from(
select userid,count(*) num
from my_score
group by userid ) t,my_student student
where t.userid =student.userid and t.num>=3;
8.问题:按照年龄排序并直接输出到不同的文件中
create table if not exists result2(
userid string,
name string,
sex string,
age string,
xi string
)
row format delimited fields terminated by ','
stored as textfile;insert into result2
select *
from my_student
order by age desc;
9.问题:查询学生的得分情况。
select student.name,score.score
from my_score score,my_student student
where score.userid=student.userid;
10.问题:查询选修信息系统课程且成绩在90分以上的所有学生。
select distinct(t2.name)
from(
select score.userid userid
from my_score score,my_course course
where score.score>=90 and score.courseid=course.courseid) t1,my_student t2
where t1.userid=t2.userid;
11.问题:查询与“刘晨”在同一个系学习的其他学生
select t3.name
from(
select t2.name name
from my_student t1,my_student t2
where t1.name='刘晨' and t1.xi=t2.xi) t3
where t3.name<>'刘晨';
转载于:https://www.cnblogs.com/meiLinYa/p/9302993.html
Hive 外部表的练习(多表关联查询,以及分组,子查询)相关推荐
- 三、MySQL子查询学习笔记(标量子查询、列子查询、行子查询、表子查询 详解)
三.MySQL子查询学习笔记 7:子查询 含义: 一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询:在外面的查询语句,称为主查询或外查询 分类: 一 ...
- SQL外键约束多表查询级联删除子查询
文章目录 一.外键 1.创建外键约束 2.删除外键约束 3.外键约束提示 二.级联删除 三.多表查询 1.笛卡尔积 2.内连接查询 1.隐式内连接 2.显示内连接 3.外连接查询 1.左外连接 2.右 ...
- order by 子查询_视图,子查询,标量子查询,关联子查询
视图 子查询 标量子查询 关联子查询 如何用SQL解决业务问题 各种函数 1. 视图 视图内存放SQL查询语句,运行时运行该语句.查出的数据为临时数据 创建视图 create view as 视图名称 ...
- oracle sql 转换成 hive sql -子查询转关联查询(三).子查询中嵌套子查询
其他sql格式也在更新中,可直接查看俺的这个系列,要是没有你需要的格式,可在评论或私信我,俺现在一天一看 Oracle转换hive 其他sql格式也在更新中,可直接查看俺的这个系列,要是没有你需要的格 ...
- SQL插入数据时连表查询(利用子查询一次性 insert 多条数据)
标准说明: INSERT 语句中的 SELECT 子查询可用于将一个或多个表或视图中的值添加到另一个表中.使用 SELECT 子查询还可以同时插入多行. INSERT INTO 表名 as a (a. ...
- Mysql---子查询的三种查询方式( 表子查询,条件子查询,列中子查询)
mysql子查询 子查询分为: 列中子查询 单列单行 表子查询 必须有别名 条件子查询 单行单列 多行单列 下列示例表结构: grade表: result表: student表: subject表: ...
- SQL:多表查询语句(嵌套子查询,多表连接)操作实例
一.SQL Server多表查询,包括连接操作和嵌套子查询 背景知识: 一.连接:分成内连接和外连接,内连接相当于取交集,外连接相当于取并集 二.嵌套子查询:连接操作浪费资源,使用嵌套子查询可以避免连 ...
- 单行子查询 多行子查询 关联子查询 笔记
1.连接基本语法 select columns_list from table_1 innner join table_2 on join_condition; eg:select e.empno,e ...
- 练习6:多表关联查询、嵌套子查询
6. 查询学过「张三」老师授课的同学的信息 关键词分析: 学过.张三老师.同学信息 第一步: 锁定表,我们发现需要查询所有的四张表,各表使用的地方分别在后续步骤中一一说明. 第二步: 从teacher ...
最新文章
- python中tkinter圆弧_Tkinter(Python)中弧的选项
- JAVA里tokens意思_Java TokenMetadata.sortedTokens方法代码示例
- 使用微软的TFS云服务来管理小型项目
- python 读取地震道头数据_python地震数据可视化详解
- 学术大数据在企业专家对接中的应用
- call() apply() bind()
- linux 一运行build卡,linux_system_build
- Python之ASCII码
- USBCAN 、便携式 CAN 分析仪 、CAN卡
- ActivityManager.getRunningTasks笔记
- redis 集群scan
- 大数据教孩子如何写好作文
- HTC M7日文版HTL22刷机包 毒蛇2.5.0 ART NFC Sense6.0
- 计算机cpu的工作电压,cpu工作电压一般多少是正常的?怎么查看和调整cpu电压?...
- 面试时,可以问面试官问题总结
- 天南地北双飞客,老翅几回寒暑!
- vc 6.0++解决兼容性及闪退问题
- 拖延的原因、误区、及建议
- 第八章 强制类型转换
- 部署 Exsi 7.0.3
热门文章
- 讲座回顾|2021/4/7|青源美团|CVPR 2021 预讲 · 美团专场,覆盖实例分割,图像分割,表情识别,特征选择和对齐...
- 前端axios下载excel文件(二进制)的处理方法
- 查看公司内网 IP 占用情况
- idea vue.js插件安装
- 计算机系统组成及工作原理PPT,第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示....
- 【Python】Scrapy完成电影信息爬取并存入数据库
- 关于SQL中的ASSERTION(某单位想举行一个小型的联谊会……)
- python小游戏——猜单词游戏(Hangman)
- Java小白的数据库爱情(四)Oracle DDL、DML使用
- 极验滑块验证码破解最新版