hive------select语法介绍
2017-07-09 02:25
351 查看
例子:班级表classes.txt,学生表students.txt,两个表文件数据如下:
classes:
student:
查询实例:
一、from语法:
1.正常from:
select * from students;
2.from语句提前
from students select *;
二、cte语法:
1. 获取班级号为1的学生信息:
with tmp as (select studentid as sid,classid as cid,studentname as name from students where classid=1) from tmp select *;
2. 获取总学生数、已经分配班级的学生数、未分配班级的学生数(作业1)。
分析:
总学生数:studentid的总数
分配班级的学生数:classid不为空的学生总数
未分配的学生数: classid为空的学生数
结果: 12 7 5
三、where & group by语法实例:
1. 获取学生数大于3的班级id
from students select classid where classid is not null group by classid having count(studentid) > 3;
四、order by、sort by排序语法:
1. 使用order by根据学生id倒序。
select * from students order by studentid desc;
2. 设置hive.mapred.mode为strict,然后在进行order by操作。
set hive.mapred.mode=strict;
select * from students order by studentid desc; 会出现异常
select * from students order by studentid desc limit 5;
3. 使用sort by根据学生id排序。
select * from students sort by studentid desc;
4. 设置mapreduce.job.reduces个数为两个,然后再使用sort by进行排序。(说明sort by是根据reduce个数进行局部排序的)
set mapreduce.job.reduces=2;
select * from students sort by studentid desc;
classes:
1,班级1 2,班级2 3,班级3
student:
11,1,张三 12,1,李四 13,1,王五 21,2,Tom 22,2,Gerry 23,2,Simon 24,2,Jim 91,\N,Jeffrey 92,\N,Leo 93,\N,even 94,\N,aaron 95,\N,addison
查询实例:
一、from语法:
1.正常from:
select * from students;
2.from语句提前
from students select *;
二、cte语法:
1. 获取班级号为1的学生信息:
with tmp as (select studentid as sid,classid as cid,studentname as name from students where classid=1) from tmp select *;
2. 获取总学生数、已经分配班级的学生数、未分配班级的学生数(作业1)。
分析:
总学生数:studentid的总数
分配班级的学生数:classid不为空的学生总数
未分配的学生数: classid为空的学生数
结果: 12 7 5
三、where & group by语法实例:
1. 获取学生数大于3的班级id
from students select classid where classid is not null group by classid having count(studentid) > 3;
四、order by、sort by排序语法:
1. 使用order by根据学生id倒序。
select * from students order by studentid desc;
2. 设置hive.mapred.mode为strict,然后在进行order by操作。
set hive.mapred.mode=strict;
select * from students order by studentid desc; 会出现异常
select * from students order by studentid desc limit 5;
3. 使用sort by根据学生id排序。
select * from students sort by studentid desc;
4. 设置mapreduce.job.reduces个数为两个,然后再使用sort by进行排序。(说明sort by是根据reduce个数进行局部排序的)
set mapreduce.job.reduces=2;
select * from students sort by studentid desc;
相关文章推荐
- hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE)
- hive中select语法
- Linq基本子句介绍-语法之select
- 009-Hadoop Hive sql语法详解4-DQL 操作:数据查询SQL-select、join、union、udtf
- hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE)
- java语法分析器介绍
- 存储过程语法介绍
- Chap 5 学习笔记-XML语法介绍
- jQuery介绍及语法
- DataFormatString属性语法介绍及解决DataFormatString无效的问题
- ORACLE语法中的INSERT INTO。。。SELECT。。。
- SelectRelView(SelectView)介绍
- ASP.NET Atlas简单控件介绍——Label,HyperLink,Select和Image
- dos之bat批处理文件语法介绍
- css滤镜属性语法介绍
- 正则表达式通用介绍和语法
- asp+语法介绍
- css滤镜属性语法介绍
- Java 语法介绍(一):Java语言的基本组成
- SQL的详细语法介绍——对于学习数据库最基础知识二