Hive函数等

1.GROUP BY

GROUP BY语句通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作。

2.having与where不同点

(1)where后面不能写分组聚合函数,而having后面可以使用分组聚合函数。

(2)having只用于group by分组统计语句。

---(1)求每个部门的平均薪水大于2000的部门

select deptno,avg(sal) avg_sal

from emp

group by deptno

having avg_sal > 2000;

3.concat:拼接字符串

concat(e.empno,'-',e.ename,'-',e.job)

4.concat_ws是concat升级版

concat_ws('-',cast(e.empno as string),e.ename,e.job)

注意:concat_ws一定是字符串或者是字符串数组

5.collect_list不去重,行专列

SELECT deptno FROM emp;

22

33

44

55

44

SELECT COLLECT_LIST(deptno) FROM emp;

22,33,44,55,44

6.collect_set去重

SELECT COLLECT_SET(deptno) FROM emp;

22,33,44,55

7.rank(),dense_rank(),row_number()

rank()

分数 排名

84        1

84        1

78        3

68        4

dense_rank()

分数 排名

84        1

84        1

78        2

68        3

row_number()

分数 排名

84        1

84        2

78        3

68        4

上一篇:【BI学习心得21-常见规划问题2】


下一篇:1012 The Best Rank (25 分)(排序)