一起重新开始学大数据-hive篇-day 51 数据类型 、DDL、DML |
HQL的小贴士(tips):
1、count(*)、count(1) 、count(‘字段名’) 区别
count(*):所有行进行统计,包括NULL行
count(1):所有行进行统计,包括NULL行
count(‘字段名’):对字段中非Null进行统计
结果差距不大但是受到集群影响执行时间有差异,
执行时间:
count(*)>count('字段名')count(1)
2、HQL 执行优先级:
from -> join on -> where -> group by -> select -> having -> order by -> limit
3、where 条件里不支持不等式子查询,实际上是支持 in、not in、exists、not exists
-- 列出与“SCOTT”从事相同工作的所有员工。
select t1.EMPNO
,t1.ENAME
,t1.JOB
from emp t1
where t1.ENAME != "SCOTT" and t1.job in(
select job
from emp
where ENAME = "SCOTT");
7900,JAMES,CLERK,7698,1981-12-03,950,null,30
7902,FORD,ANALYST,7566,1981-12-03,3000,null,20
select t1.EMPNO
,t1.ENAME
,t1.JOB
from emp t1
where t1.ENAME != "SCOTT" and exists(
select job
from emp t2
where ENAME = "SCOTT"
and t1.job