Hive SQL

1 Hive SQL

1 select查询
select time, ip from access;
select * from access;
不会触发MR操作

2 函数
upper()等函数
select upper(url) from access;
不会触发MR操作

3 统计函数
count()
max()
min()
avg()
sum()
select count(*), max(time), min(time), avg(time), sum(time) from access;
会触发MR操作

4 distinct去除重复值
select distinct(id) from access;
会触发MR操作

5 limit限制返回记录的条数
select upper(url) from access limit 3;
不会触发MR操作

6 为列名取别名
But: Hive SQL不显示列名称,So:意义不大
select upper(url) bpx_url from access; 
不会触发MR操作

7 case when then 多路分支
类似Java中switch...case

8 like 模糊查询
select * from access where url like '%2%';
不会触发MR操作

9 group by分组统计
select id, avg(time) from access group by id;
会触发MR操作

10 having过滤分组统计结果
select id, avg(time) from access group by id having avg(time) > '17/May/2015:08:05:24+0000';
会触发MR操作

11 inner join内联接

12 left outer join & right outer join外联接

13 full outer join 外部联接

14 order by 排序
asc升序 - 默认
desc降序
会触发MR操作

15 where查找
select * from access where ip=10.10.10.10;
>不支持子查询
>利用联接查询来实现

2 Hive 不涉及子查询的单表查询SQL执行顺序

FROM + 表名
WHERE + 查询条件
GROUP BY + 字段名
HAVING + 查询条件
DISTINCT + 字段名
ORDER BY + 字段名
LIMIT + 数量

3 常用关键词解释

关键词解释
SELECT告诉数据库提取数据的时候所需字段名称。字段名称可以是表中已有的字段,也可以是函数基于表中字段名称生成的字段名称。多个字段名称之间用英文符号,分隔开来。
FROM告诉数据库提取数据的时候需要的表或视图。
WHERE限定数据查询的条件,提取数据子集。查询条件包括:比较运算符、成员运算符、通配符、逻辑运算符。
GROUP BY聚合(统计)时候的分组操作,通常与聚合函数一起使用,例如统计商品页这个月每天的访问量,访问量的计算就是统计过程,以天为单位进行统计就是分组。需要写入被分组的字段,可以填写多个字段。
HAVING同WHERE作用都都是为了筛选数据,不同之处在于WHERE是针对表中已经存在的字段进行筛选,HAVING是针对统计结果的筛选。需要写入具体的筛选条件,筛选条件不能存在通配符。
ORDER BY对查询结果的排序,可以按照某个字段名称或某些个字段名称来进行升序或降序的设置。多个字段名称之间用英文符号,分隔开来。默认按照升序排序,但可以通过DESC来实现降序排序。
LIMIT限定查询返回的记录行数,可以是前几行或中间几行以及末几行。搭配ORDER BY子句可以实现TOPN。

在这里插入图片描述
在这里插入图片描述

https://mp.weixin.qq.com/s/rKn9AnlSEMiVTIQTLEH3Sg

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值