数据仓库 业务分析常用函数

一 collect_set函数,将某个字段形成一个数组

select course, collect_set(area), avg(score) from stud group by course;
chinese ["sh","bj"]     79.0
math    ["bj"]  93.5

还可以通过下标取值

select course, collect_set(area)[0], avg(score) from stud group by course;
chinese sh      79.0
math    bj      93.5

二 日期处理函数

1 date_format函数(根据格式整理日期),分析一些月度指标时,将不同日的时间,截取出同样的年月。

select date_format('2020-06-26','yyyy-MM');
OK
_c0
2020-06

2 date_add和date_sub,日期加减,加减天数可以为负。

select date_add('2020-06-25',5);
OK
_c0
2020-06-30
select date_sub('2020-06-25',5);
OK
_c0
2020-06-20

3 next_day函数

取当前天的下一个周一

select next_day('2020-06-26','MO');
OK
_c0
2020-06-29

取当前周的周一。下一个周一一定在下周,再减去7刚好是本周周一。

select date_add(next_day('2020-06-26','MO'),-7);
OK
_c0
2020-06-22

取当前周的周天。下一个周一一定在下周,再减去1刚好是本周周天。本周的其他星期都可以类似得到。

date_add(next_day('2020-06-26','MO'),-1);

4 last_day函数,得到本月的最后一天的日期

select last_day('2020-06-26');
OK
_c0
2020-06-30
原文地址:https://www.cnblogs.com/noyouth/p/13195543.html