HIVE-笔记

蚂蚁森林题目的第二题没看到 先跳过

加载数据:
load data inpath “/daya/dataload//ids.csv” into table bit.name PARTITION(dt=“2019-03-06”);

desc formatted 表名/ desc 表名

一个表是一个文件夹, 分区是表的文件夹下再建文件夹, 以分区名建文件夹

hive中无索引

insert 语句是从hive的表a导入到hive的表b
sqool是把hive的表导入到mysql 中的
truncate 是清空表,只能删除内部表 不能删除外部表

sql关键词写的顺序:

select 
from 
join on
where
group by 
order by 
having 
limit 

执行顺序:

from -> join on -> where -> group by -> select|having -> order by -> limit 

1.order by后面可以使用在select命名的别名,所以order byselect之后
2. 先走过滤再走查询

sql优化的方式:

第一种:
select *
from A
join B 
on A.id=Bid
where A.id>100
这样的方式会查出很多冗余的信息,优化的方式:
先走的是子查询,过滤出来所需的数据,再进行join 
select *
from
(
select id from A where A.id>100 
) t1
join B
on t1.id=B.id

如果需要对查询的结果进行再次加工,需要进行子查询,就是再包裹一层。

sql中分为以下几种: 一和多指的是行数, 不是参数

  1. 一进多出 exploed 炸裂函数
  2. 一进一出 udtf, nvl函数
  3. 多进一出 sum等聚合函数

distinct去重是将数据放到一个reduce中, 处理的数据量会很大;

每个用户在2019-10之前的总低碳量, 因为是对每个人计算总量,是以人为单位的,所以要对人分组 group by
select uid,
	   sum(low_carbon)
from table_name
where date_format(regexp_replace(date_dt, '/', '-'), 'yyyy-MM')<'2019-10'
group by uid 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值