赞
踩
collect_set(col):行转列,函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。
NVL(表达式 1, 表达式 2)
如果表达式 1 为空值, NVL 返回值为表达式 2 的值, 否则返回表达式 1 的值。 该函数的目的是把一个空值(null) 转换成一个实际的值。 其表达式的值可以是数字型、 字符型和日期型。 但是表达式 1 和表达式 2 的数据类型必须为同一个类型。
select date_format('2020-03-10','yyyy-MM');
2020-03
select date_add('2020-03-10',-1);
2020-03-09
select date_add('2020-03-10',1);
2020-03-11
(1) 取当前天的下一个周一
select next_day('2020-03-12','MO');
2020-03-16
说明: 星期一到星期日的英文(Monday, Tuesday、 Wednesday、 Thursday、 Friday、 Saturday、 Sunday)
(2) 取当前周的周一
select date_add(next_day('2020-03-12','MO'),-7);
2020-03-11
select last_day('2020-03-10');
2020-03-31
分别统计男、女的个数
select
dept_id,
sum(case sex when '男' then 1 else 0 end) male_count,
sum(case sex when '女' then 1 else 0 end) female_count
from
emp_sex
group by
dept_id;
用法:LATERAL VIEW udtf(expression) tableAlias (虚拟表名)AS columnAlias(虚拟列名)
解释:用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。
EXPLODE(col):将hive一列中复杂的array或者map结构拆分成多行
select
movie,
category_name
from
movie_info lateral view explode(category) table_tmp as category_name;
列转行,行转列案例:
select
category_name,
concat_ws('|', collect_list(movie)) movies
from
movie_info lateral view explode(category) table_tmp as category_name
group by category_name;
```)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200611223946461.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。