如何获得最高薪水

vxbzzdmp  于 2021-06-29  发布在  Hive
关注(0)|答案(2)|浏览(268)

我在一次采访中被问到这个问题(希望你们能帮助我;提前谢谢)。
在hive中,如何从员工表中获得最高的薪酬?

003 Amit Delhi India 12000
004 Anil Delhi India 15000
005 Deepak Delhi India 34000
006 Fahed Agra India 45000
007 Ravi Patna India 98777
008 Avinash Punjab India 120000
009 Saajan Punjab India 54000
001 Harit Delhi India 20000
002 Hardy Agra India 20000
ghhaqwfi

ghhaqwfi1#

Select Id , max(salary) from employee group by city;

在这种情况下,将显示每个薪资最高的城市及其id。

nwnhqdif

nwnhqdif2#

试试这个:

SET @rank:=0;
 SET @dept:='';
 SET @desiredrank=8;  --For example. 

 SELECT ename, rank, salary
 FROM
 (
      SELECT
         ename, salary, 
         @rank:=CASE WHEN @dept=deptid THEN @rank+1 ELSE 1 END AS rank,
         @dept:=deptid AS department
      FROM employees e
      JOIN departments d
      ON e.deptid=d.deptid
      ORDER BY d.deptid, salary
 )
 WHERE rank=@desiredrank

基本上你必须使用两个额外的变量。一个模拟分组,一个跟踪排名。当查询完成后,根据您想要的排名对其进行筛选。

相关问题