Mysql实现:select empno,ename,deptno,sal from emp where deptno=10 order by sal desc;
mysql max函数_Hive的分析函数的学习
如果要求是:将每个部门薪资最高的那个人的薪资显示在最后一行。
select empno,ename,deptno,sal, max(sal) over(partition by deptno order by sal desc) as sal_max from emp;
mysql max函数_Hive的分析函数的学习
mysql max函数_Hive的分析函数的学习
我们看官网这个位置
mysql max函数_Hive的分析函数的学习
mysql max函数_Hive的分析函数的学习
我们来解释里面的概念
当前有一个数据
mysql max函数_Hive的分析函数的学习
CURRENT ROW
mysql max函数_Hive的分析函数的学习
UNBOUNDED PRECEDING 初始行
PRECEDING 前一行
CURRENT ROW 当前行
FOLLOWING 后一行
UNBOUNDED FOLLOWING 最后一行
mysql max函数_Hive的分析函数的学习
所以上面的语句我们变动下
select empno,ename,deptno,sal, max(sal) over(partition by deptno order by sal desc ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as sal_max from emp;
可以控制窗口大小
mysql max函数_Hive的分析函数的学习
结果是一样的,但是窗口大小我们做了变化
mysql max函数_Hive的分析函数的学习
我们准备数据
mysql max函数_Hive的分析函数的学习
创建一个表
mysql max函数_Hive的分析函数的学习
mysql max函数_Hive的分析函数的学习
载入数据
load data local inpath '/data/hivetest/anal.txt' into table analytical;