HiveSql(3)HiveSQL与oracle SQL的区别
来源:互联网 发布:手淘自然排名优化步骤 编辑:程序博客网 时间:2024/06/08 06:13
HiveSQL与oracle SQL的区别
1、hive sql暂时不能使用in,不支持where字句中的子查询。可以利用leftsemi join来实现in。
Hive:
Select * from employee e left semi joindept d on (e.deptno=d.deptno)
小表放在join左边。
Left semi join是in/exist在hive中的一种更为高效的实现。
Oracle:
Select * from employee e where e.deptno in (selectd.deptno from dept d))
2、hive sql同样不支持not in。可以利用leftouter join来实现。
Hive:
Select e.* from employee e left outer joindept d on(e.deptno=d.deptno) where d.deptno is null
Oracle:
Select * from employee e where e.deptno notin (select d.deptno from dept d))
3、join上的不同
Hive:
Select * from employee e join dept d on (e.id=d.id)
Oracle:
Select * from employee e,dept d where e.id=d.id
4、rank函数的不同
Hive:
Select e.name,e.dept,e.salary,rank(e.dept,e.salary)
From (Select name,dept,salary from employeedistributed by dept sort by dept,salary desc)e
Oracle:
Select name,dept,salary,rank() over(partitionby dept order by salary desc) from employee
5、min函数的不同
Hive:
Select dept,tmp.m
From (Select dept,min(salary) m fromemployee group by dept) tmp
On employee.dept=tmp.dept
Oracle:
Select dept,min(salary) over (partition bydept) from employee
- HiveSql(3)HiveSQL与oracle SQL的区别
- mysql学习(4):SQL语句的使用,以及与HiveSQL语句的比较
- HiveSQL的编译过程
- hiveSql的一些问题
- HiveSQL的执行过程分析
- Hivesql的相关查询案例
- HiveSql(1)mapjoin、分区表
- HiveSQL学习
- hiveSQL记录
- HiveSQL备忘
- HiveSQL-get_json_object
- hiveSQL操作
- HiveSQL的CASE-WHEN的使用
- Hivesql里的limit使用误区
- hivesql语法经验
- HiveSQL解析过程详解
- HIVESQL中row_number使用
- hivesql语法经验
- ListView 中设置setonitemclicklistener()监听时,无法获取item条目的点击事件焦点
- PHP学习之数组
- 我的Android进阶之旅------>Android Activity的singleTask加载模式和onActivityResult方法之间的冲突
- Python---索引
- 2016年1月13日
- HiveSql(3)HiveSQL与oracle SQL的区别
- hdoj5475An easy problem【线段树】
- 12本最具影响力的程序员书籍_书籍书评_酷勤网
- Java多线程——Thread 和 Runnable
- eclipse mybatis Generator
- 将博客搬至51CTO
- 什么叫对冲基金
- HPU:1312Red and Black(dfs)
- cloudera manager