如何获得具有最大值和限制的不同列,蜂巢

How to get distinct column with max value and limit, hive

我有一个 table emp,大约有 10 行

empno,ename,dept,sal,deptno

现在我希望每个部门的结果都是 max sal。

EX:

12,ravi,manager,20000,10
43,hari,engineer,10000,20
32,sam,clerk,5000,30

获取每个部门的最高薪水,然后获取每个最高薪水的名称。

select ename,dept,sal
from emp
where sal in (select max(sal) as sal from emp group by dept)

使用row_number()partition

select * from 
(
   select ename,dept,sal, row_number() over (partition by dept order by sal desc) as row_no
   from emp
) res 
where res.row_no = 1