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