hive的常用HQL语句

1、过滤条件
where 、limit、 distinct、 between and 、 null、 is not null
select * from emp where sal > 3000;
select * from emp limit 1;
select distinct deptno from emp;
select * from emp where sal between 2000 and 3000;
select ename from emp where comm is null;
select ename from emp where comm is not null;

2、聚合函数
count、 sum、 avg、 max、 min 、group by、 having

select count(1) from emp;
select count(*) from emp; -》运行效率较低

select avg(sal) avg_sal from emp;
select deptno,avg(sal) from emp group by deptno;
select deptno,avg(sal) avg_sal from emp group by deptno having avg_sal > 2000;

3、join
等值join
左join left
右join right
全join full

select e.empno,e.ename,d.deptno,e.sal from emp e join dept d on e.deptno=d.deptno;

select e.empno,e.ename,d.deptno,e.sal from emp e left join dept d on e.deptno=d.deptno;

select e.empno,e.ename,d.deptno,e.sal from emp e right join dept d on e.deptno=d.deptno;

select e.empno,e.ename,d.deptno,e.sal from emp e full join dept d on e.deptno=d.deptno;

4、hive中的几种排序方式
1、order by
select * from emp order by sal;
2、sort by

insert overwrite local directory ‘/opt/datas/emp_sort‘ row format delimited fields terminated by ‘\t‘ select * from emp sort by sal;

3、distribute by

insert overwrite local directory ‘/opt/datas/emp_dist‘ row format delimited fields terminated by ‘\t‘ select * from emp distribute by deptno sort by sal;

4、cluster by
=distribute by+sort by

insert overwrite local directory ‘/opt/datas/emp_cls‘ row format delimited fields terminated by ‘\t‘ select * from emp cluster by sal;

原文地址:https://www.cnblogs.com/wakerwang/p/hive.html

时间: 2024-10-10 02:55:29

hive的常用HQL语句的相关文章

hive如何提交hql语句到hive上执行

hive的安装部署,网上有很多教程,我在这边就不再重复了,这次我要讲的是hive如何提交hql语句到hive上执行. 一共有以下几种方式: 第一. hiveserver 通过搭建hiveserver来提供thrift接口,接收来自远程提交的hql语句执行. 这样做的好处是不需要hive客户端,简化部署方式,但是对于数据分析工程需要一定的研发能力来实现thrift协议,不过可以设计一个公用的组件来简化数据分析师的工作量.弥补数据分析师不熟悉开发的欠缺. 第二.hive client hive cl

Hive操作之HQL语句

HQL操作1.Distribute by    distribute by col按照col列把数据分散到不同的reduce    sort    sort by col 按照col列把数据排序    select col,co2 from table_name distribute by col1 sort by col1    asc,col2 desc;    两者结合出现,确保每个reduce的输出都是有序的     应用场景:    * map输出的文件大小不均    * reduce

【SSH】Hibernate:常用的HQL语句

Hibernate query language 简称HQL,是实际开发中最长的hibernate查询封装模式. HQL提供了更加接近传统SQL语句的查询方法: <span style="font-family:Verdana;font-size:14px;">[select/update/delete-] [from-][where-][groupby-] [having -][order by-]</span> 实体查询: <span style=&q

Hive Shell常用操作

1.本文命令的两种模式: 交互模式,即hive的shell环境:hive > …. 非交互模式:普通的Linux命令模式:%..... 2.Hive Shell常用操作 1) hive -e:从命令行执行指定的HQL,不需要分号: % hive -e 'select * from dummy' > a.txt 2) hive –f: 执行HQL脚本 % hive -f /home/my/hive-script.sql 3) hive -i:在进入交互模式之前,执行初始化sql文件 % hive

HQL语句大全

Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL.但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承.多态 和关联之类的概念. 第 15 章 HQL: Hibernate查询语言Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL.但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承.多态 和关联之类的概念. 15.1. 大小写敏感性问题除了Java类与属

Hive基础之Hive表常用操作

本案例使用的数据均来源于Oracle自带的emp和dept表 创建表 语法: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED

hibernate 之 HQL语句总结【转】

1. 查询整个映射对象所有字段 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 String hql = "from Users"; Query query = session.createQuery(hql); List<Users> users = query.list(); for(Users user : users){ System.out.println(user.getName() + " : " + user.ge

hive\hadoop 常用命令

-1------ 后台跑程序语句: 在shell下输入: nohup hive -f  aaa.sql >bbb.log 2>&1 & 然后把sql 的脚本导入服务器上:Transfer-Zmodem upload List 相关命令:jobs:可以看到运行的任务,:cat bbb.log 可以看到这个任务运行情况 ====2================ 文件传输: 打印列名语句:set hive.cli.print.header=true; set hive.groupb

HQL语句使用

1.查询结果是表的部分字段,而不是全部 ad是CouponAd 对象 coupon 是ad的属性,也是一个实体类 select ad.coupon from CouponAd ad where ad.deleted=false Order by createdDate desc 2.like模糊搜索 这里变量key是String类型. String hql = "from Coupon coupon where coupon.deleted=false and coupon.name like