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 外部表的练习(多表关联查询,以及分组,子查询)相关推荐

  1. 三、MySQL子查询学习笔记(标量子查询、列子查询、行子查询、表子查询 详解)

    三.MySQL子查询学习笔记 7:子查询 含义: 一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询:在外面的查询语句,称为主查询或外查询 分类: 一 ...

  2. SQL外键约束多表查询级联删除子查询

    文章目录 一.外键 1.创建外键约束 2.删除外键约束 3.外键约束提示 二.级联删除 三.多表查询 1.笛卡尔积 2.内连接查询 1.隐式内连接 2.显示内连接 3.外连接查询 1.左外连接 2.右 ...

  3. order by 子查询_视图,子查询,标量子查询,关联子查询

    视图 子查询 标量子查询 关联子查询 如何用SQL解决业务问题 各种函数 1. 视图 视图内存放SQL查询语句,运行时运行该语句.查出的数据为临时数据 创建视图 create view as 视图名称 ...

  4. oracle sql 转换成 hive sql -子查询转关联查询(三).子查询中嵌套子查询

    其他sql格式也在更新中,可直接查看俺的这个系列,要是没有你需要的格式,可在评论或私信我,俺现在一天一看 Oracle转换hive 其他sql格式也在更新中,可直接查看俺的这个系列,要是没有你需要的格 ...

  5. SQL插入数据时连表查询(利用子查询一次性 insert 多条数据)

    标准说明: INSERT 语句中的 SELECT 子查询可用于将一个或多个表或视图中的值添加到另一个表中.使用 SELECT 子查询还可以同时插入多行. INSERT INTO 表名 as a (a. ...

  6. Mysql---子查询的三种查询方式( 表子查询,条件子查询,列中子查询)

    mysql子查询 子查询分为: 列中子查询 单列单行 表子查询 必须有别名 条件子查询 单行单列 多行单列 下列示例表结构: grade表: result表: student表: subject表: ...

  7. SQL:多表查询语句(嵌套子查询,多表连接)操作实例

    一.SQL Server多表查询,包括连接操作和嵌套子查询 背景知识: 一.连接:分成内连接和外连接,内连接相当于取交集,外连接相当于取并集 二.嵌套子查询:连接操作浪费资源,使用嵌套子查询可以避免连 ...

  8. 单行子查询 多行子查询 关联子查询 笔记

    1.连接基本语法 select columns_list from table_1 innner join table_2 on join_condition; eg:select e.empno,e ...

  9. 练习6:多表关联查询、嵌套子查询

    6. 查询学过「张三」老师授课的同学的信息 关键词分析: 学过.张三老师.同学信息 第一步: 锁定表,我们发现需要查询所有的四张表,各表使用的地方分别在后续步骤中一一说明. 第二步: 从teacher ...

最新文章

  1. python中tkinter圆弧_Tkinter(Python)中弧的选项
  2. JAVA里tokens意思_Java TokenMetadata.sortedTokens方法代码示例
  3. 使用微软的TFS云服务来管理小型项目
  4. python 读取地震道头数据_python地震数据可视化详解
  5. 学术大数据在企业专家对接中的应用
  6. call() apply() bind()
  7. linux 一运行build卡,linux_system_build
  8. Python之ASCII码
  9. USBCAN 、便携式 CAN 分析仪 、CAN卡
  10. ActivityManager.getRunningTasks笔记
  11. redis 集群scan
  12. 大数据教孩子如何写好作文
  13. HTC M7日文版HTL22刷机包 毒蛇2.5.0 ART NFC Sense6.0
  14. 计算机cpu的工作电压,cpu工作电压一般多少是正常的?怎么查看和调整cpu电压?...
  15. 面试时,可以问面试官问题总结
  16. 天南地北双飞客,老翅几回寒暑!
  17. vc 6.0++解决兼容性及闪退问题
  18. 拖延的原因、误区、及建议
  19. 第八章 强制类型转换
  20. 部署 Exsi 7.0.3

热门文章

  1. 讲座回顾|2021/4/7|青源美团|CVPR 2021 预讲 · 美团专场,覆盖实例分割,图像分割,表情识别,特征选择和对齐...
  2. 前端axios下载excel文件(二进制)的处理方法
  3. 查看公司内网 IP 占用情况
  4. idea vue.js插件安装
  5. 计算机系统组成及工作原理PPT,第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示....
  6. 【Python】Scrapy完成电影信息爬取并存入数据库
  7. 关于SQL中的ASSERTION(某单位想举行一个小型的联谊会……)
  8. python小游戏——猜单词游戏(Hangman)
  9. Java小白的数据库爱情(四)Oracle DDL、DML使用
  10. 极验滑块验证码破解最新版