Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 使用hive中的rank/dense_rank查找每个部门的第二高工资_Hadoop_Hive_Hiveql_Rank_Dense Rank - Fatal编程技术网

Hadoop 使用hive中的rank/dense_rank查找每个部门的第二高工资

Hadoop 使用hive中的rank/dense_rank查找每个部门的第二高工资,hadoop,hive,hiveql,rank,dense-rank,Hadoop,Hive,Hiveql,Rank,Dense Rank,这是在一次采访中向我提出的两个问题,但唯一的条件是使用秩/密秩 使用中的秩/密秩查找每个部门的第二高工资 蜂箱 当每个部门有足够的记录时 当几个部门只有一个记录时 指导我这是否有效。 如果是,那么应该查询哪些内容。如果需要选择所有二等薪资员工,则使用 densite_rank()over(按部门顺序按薪资描述划分)=2filter。它将以二等工资返还所有员工 当部门中只有1条记录时(不存在第二个薪资,部门中有一名员工),它将排名1,并且您将不会获得该部门的任何记录,通过密集_rank=2进行过滤

这是在一次采访中向我提出的两个问题,但唯一的条件是使用秩/密秩

使用中的秩/密秩查找每个部门的第二高工资 蜂箱

  • 当每个部门有足够的记录时
  • 当几个部门只有一个记录时
  • 指导我这是否有效。
    如果是,那么应该查询哪些内容。

    如果需要选择所有二等薪资员工,则使用

    densite_rank()over(按部门顺序按薪资描述划分)=2
    filter。它将以二等工资返还所有员工

    当部门中只有1条记录时(不存在第二个薪资,部门中有一名员工),它将排名1,并且您将不会获得该部门的任何记录,通过密集_rank=2进行过滤


    如果您只需要选择一条记录(不是所有员工)具有第二工资,则
    行(按部门顺序划分,按工资描述)=2
    将起作用,但如果有许多员工具有第二工资,它将随机选择一名具有第二工资的员工。只有一条记录将被标记为行数=2。

    问题的可能重复是通过使用分析函数(排名/密集排名),因此它与不使用分析函数有点不同(如何在不使用分析函数的情况下获得第二高的薪资部门?)